在SQL Server中创建非集群索引上是否有分区有什么区别?



我有一个按列划分的表,我们称它为column "Col1"该列可以有以下值:1、2或3。

查看该表的所有查询都需要WHERE Col1 = 1。

当我们在这个表上创建NONCLUSTERED索引时,这与

之间的区别到底是什么?
CREATE NONCLUSTERED INDEX IX_Table1_City
ON dbo.table1 (Col1, City)
INCLUDE (County, Street)

:

CREATE NONCLUSTERED INDEX IX_Table1_City
ON dbo.table1 (Col1, City)
INCLUDE (County, Street)
ON [Partition_Name] (Col1)

两个索引都正常使用,所以我试图理解为什么我需要第二个选项。

谢谢!

通常这两种方法都会产生分区索引,因为默认情况下,非聚集索引是在表的分区方案上创建的。

但是,如果您的表在其他分区方案下由其他列分区,或者根本没有分区,那么第二种语法将允许您创建一个与主表不对齐的分区非聚集索引。

最新更新