SQL Server分区是否会在不更改文件组的情况下提高性能

Tom*_*lle 3 sql-server performance partitioning

场景我有一个1000万行表.我将它划分为10个分区,每个分区产生100万行,但我没有做任何事情(比如将分区移动到不同的文件组或主轴)

我会看到性能提升吗?这实际上就像创建10个较小的表一样吗?如果我有执行密钥查找或扫描的查询,性能是否会增加,就好像它们是针对更小的表操作一样?

我试图理解分区与仅具有良好索引的表有何不同,以及它可用于提高性能的位置.

更好的方案是将旧数据(使用分区切换)从主表移动到只读存档表吗?

是否有一个包含100万行分区的表和一个900万行分区(性能明智)将900万行移动到另一个表并在原始表中只留下100万行?

Rem*_*anu 5

分区不是性能特征,适用于维护操作,例如在表之间移动数据和快速丢弃数据.将10M行表分区为10个1M行的分区,每个不仅不会增加大多数查询性能,可能会使其中的一些 更慢.

除非可以确定查询只需要该分区中的行,否则任何查询都不能对单个分区的较小行集进行操作.但是,通过正确选择表上的聚簇索引,或者至少覆盖非聚集索引,可以解决这个问题,总是并且更好.

  • 以及[设计分区以提高查询性能](http://technet.microsoft.com/en-us/library/ms177411(v=sql.105).aspx) 怎么样?分区是性能特性,但需要特定的技术来编写查询。还是我错了? (2认同)