在 SQL 服务器中的非聚集索引创建中是否有分区有什么区别?

What difference does it make to have or not to have the partition on a NONCLUSTERED index creation in SQL Server?

我有一个按列分隔的 table,我们称它为列“Col1” 此列可以具有以下值:1、2 或 3。

我们查看此 table 的所有查询都需要 WHERE Col1 = 1。

当我们在这个 table 上创建 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)

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

谢谢!

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

然而,如果您的 table 被其他列分区,在其他分区方案上,或者根本没有分区,则第二种语法将允许您创建分区的非聚集索引,而不是与主要 table.

对齐