我有以下唯一索引。
CREATE UNIQUE NONCLUSTERED INDEX [IX_Unique_Company_Owners] ON [dbo].[Company_Owners]
(
[Company_Entity_ID_FK] ASC,
[Person_Entity_ID_FK] ASC
)
列顺序是否有所作为?我知道它适用于非唯一索引。但不确定SQL Server是否在某种程度上调整了幕后的唯一索引。
请注意,这两列都不为空。
答案 0 :(得分:2)
列顺序对UNIQUE索引的性能影响与对非唯一索引的影响相同。
SQL Server以不同方式处理UNIQUE索引的唯一方法是在插入或更新行时检查唯一性。出于SELECT查询的目的,唯一索引和非唯一索引的处理方式相同。
答案 1 :(得分:1)
绝对有所作为。
与通过last_name然后first_name vs first_name然后last_name订购电话簿的区别相同。
如果你总是通过这两个值进行查询,那么它就不会产生真正的世界差异,但如果你经常只通过人查询,那么这个索引就不会非常有用,因为它是顺序中的第二个。