是被good或doesn't matter或bad以包括覆盖索引的主键?
CREATE NONCLUSTERED INDEX index_name_here ON dbo.table_name_here
(column_to_index_here)
INCLUDE (primary_key_column,other_column_here)
WITH( STATISTICS_NORECOMPUTE=OFF, IGNORE_DUP_KEY=OFF, --<default junk from SSMS
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
Run Code Online (Sandbox Code Playgroud)
我认为这没关系,因为PK无论如何都会在索引中.
编辑 - 澄清.
我primary_key_column是聚集的,但你可以解释/提供信息,当它不是.
我将加入dbo.table_name_here该column_to_index_here专栏,然后将加入其他表格primary_key_column和other_column_here.
JNK*_*JNK 61
如果你正在对你的PK进行聚类,那么这并不重要.SQL Server将忽略它,因为所有非聚集索引都包含该行的聚簇索引键作为其定义的一部分.
它不会在索引中使用任何额外的空间,但将它包含在定义中是多余的.
如果您的PK未包含在聚簇索引中,那么只有在您需要将该字段作为使用索引的同一查询的一部分进行检索时才包含它.
还要记住,当您INCLUDE在索引中的字段时,它不在非叶节点中,即索引不在该值上排序.
| 归档时间: |
|
| 查看次数: |
10159 次 |
| 最近记录: |