2017-10-09 100 views
1

我有以下獨特的索引。獨特索引中的領先列是否有所作爲?

CREATE UNIQUE NONCLUSTERED INDEX [IX_Unique_Company_Owners] ON [dbo].[Company_Owners] 
(
    [Company_Entity_ID_FK] ASC, 
    [Person_Entity_ID_FK] ASC 
) 

列順序是否有差別?我知道它適用於非唯一索引。但不確定SQL Server是否在某種程度上調整了幕後的獨特索引。

注意兩列都不爲空。

回答

2

列順序對UNIQUE索引具有與非唯一索引相同的性能影響。

SQL Server以不同方式處理UNIQUE索引的唯一方法是在插入或更新行時檢查唯一性。對於SELECT查詢,唯一索引和非唯一索引的處理方式相同。

1

這絕對有差別。

與通過last_name then first_name vs first_name then last_name訂購電話簿的區別相同。

如果你總是用這兩個值查詢,它不會產生真實的世界差異,但是如果你經常只是通過人來查詢,那麼這個索引不會非常有用,因爲它是次序。