0
我有一個包含多於40k行的表和一個包含此表上的2列的主鍵。主鍵(> 1列)上的索引(1列)是否有用? (SQL)
這些主鍵列之一上的獨立非聚簇(非唯一!)索引是否可以加快對該列的查詢(不使用其他PK列)?或者SQL Server會以同樣有效的方式使用主鍵來訪問只有一列主鍵?
我知道一個主鍵是一個唯一的索引,但與問題無關,我只關心跨越多列的主鍵而不是僅從一列PK列訪問數據時的主鍵。 。
我有一個包含多於40k行的表和一個包含此表上的2列的主鍵。主鍵(> 1列)上的索引(1列)是否有用? (SQL)
這些主鍵列之一上的獨立非聚簇(非唯一!)索引是否可以加快對該列的查詢(不使用其他PK列)?或者SQL Server會以同樣有效的方式使用主鍵來訪問只有一列主鍵?
我知道一個主鍵是一個唯一的索引,但與問題無關,我只關心跨越多列的主鍵而不是僅從一列PK列訪問數據時的主鍵。 。
假設的PK是:字段1,字段2(按該順序)
因此,在最後一種情況下,您可能會考慮Field2上的單獨索引。請注意,如果它有更多的話。您正在返回除PK字段以外的其他字段。在這種情況下,如果你的PK是CLUSTERED(默認情況下,PK是),那麼數據已經在索引中。但是在NONCLUSTERED索引中(例如,如果您在Field2上創建了一個索引),它必須關閉並執行查找以獲取查詢返回的其他字段。那麼你可以進入決定是否在NONCLUSTERED索引中包含INCLUDE列的領域。
推薦閱讀一下這篇文章,值得加快。
您是在PK索引的第一個還是第二個查詢的列? – beny23 2012-03-06 13:35:24
可以是任一列 – cdbeelala89 2012-03-06 13:38:19