2017-10-09 167 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订购电话簿的区别相同。

如果你总是用这两个值查询,它不会产生真实的世界差异,但是如果你经常只是通过人来查询,那么这个索引不会非常有用,因为它是次序。