SQL Server将在此处索引帮助

时间:2011-03-08 15:08:00

标签: sql-server sql-server-2005

我有一个包含A,B,C,D和E列的表.A上目前有一个聚簇索引(主键,唯一标识符)。

我经常选择A,B和C列(即A = ??和B = ??和C = ??)。我也经常选择A,而其他选择A,B和D.

聚集索引对查询的选择有什么好处而不仅仅是列A?

作为具有相当数量的行和UUID作为主键的表的一般经验法则,我应该在所有常用的选择列组合和PK列上的聚簇索引上使用非聚簇索引吗?

注意:我使用的是SQL Server 2005。

2 个答案:

答案 0 :(得分:0)

由于您已在A上拥有聚簇索引,因此在其他列B和C上只能包含非聚簇索引。您在where子句中使用的列。这肯定有助于减少查询执行的时间。

请记住,每个表只能有一个聚簇索引,默认情况下,主键列将进行聚簇索引。

答案 1 :(得分:0)

A是唯一标识符,主键具有聚簇索引。这和它一样快。对于具有B和C或B和D的查询,聚集索引不会帮助您,但原因是额外列对于查询而言是多余的;你只是不需要它们。单独就足以确定结果集,A是您可以运行的最快查询。包含其他列的索引仅在您遇到不涉及A的查询时才会帮助您。