【发布时间】:2015-12-31 10:44:14
【问题描述】:
表格有 6 列。 column1 是唯一的,所以我在 column1 上创建了主键并为所有列创建了非聚集索引:
create primary key for column1
create index for col2, col3, col4, col5, col6, col1
所以我在 where 子句中的任何列都将使用除 column1 之外的索引,之后它会在主键中丢失 column1 并将两个结果整合。正因为如此,它会提高性能吗?
【问题讨论】:
-
那么您现在有一个由所有列组成的非聚集索引?好的 - 这 可能 用于使用
col2的查询,或使用col2, col3的其他查询 - 或使用 所有 列的查询 - 但它可以 永远不会用于需要col3, col4的查询 - 因为这两列不是 最左边的n列在那个索引中!另外:将所有列添加到索引中总是一个非常糟糕的主意 - 它基本上会复制所有数据,并且很少会产生任何有用的结果......
标签: sql sql-server sql-server-2008 sql-server-2005