【发布时间】:2011-03-08 15:08:00
【问题描述】:
我有一个包含 A、B、C、D 和 E 列的表。A 上当前有一个聚集索引(主键,唯一标识符)。
我经常在 A、B 和 C 列上进行选择(即 A=?? and B=?? and C=??)。我也经常只对 A 进行选择,而对 A、B 和 D 进行其他选择。
聚集索引对查询的不仅仅是 A 列的选择有什么优势?
作为具有大量行和 UUID 作为主键的表的一般经验法则,我是否应该在所有常用的选择列组合上使用非聚集索引并在 PK 列上使用聚集索引?
注意:我使用的是 SQL Server 2005。
【问题讨论】:
-
@Joda Maki - SO 上有称为支持的功能。不要看到你已经在你提出的 43 个问题中尝试过。 stackoverflow.com/privileges/vote-up
-
对此没有明确的规则。是的,这些索引可能会有所帮助 - 或没有,这取决于您的查询和基础数据的真实情况。你需要 1) 衡量你当前的表现,然后 2) 做出改变(例如引入一个明显的指标),然后 3) 再次衡量,看看你是否得到了改进。
-
阅读Kimberly Tripp's blog post 了解为什么 GUID 会产生非常差的集群键(并且默认情况下,表上的主键是集群键 - 除非您已经知道这一点并专门更改了该默认值行为)
-
@Sachin:你必须注册才能投票
-
@Sachin:是的,但如果我愿意,它也会要求我注册。 SO 最有用的事情之一是您无需注册即可使用它。
标签: sql-server sql-server-2005