日期:2014-05-17  浏览次数:20506 次

问个关于sql2008索引的问题
我有一张表A,字段为A1,A2,A3,A4,A5.
我为了查询速度,建立了一个 符合索引,包括字段A1,A2,A3,A4
现在有一个查询只用到A1,A2字段,请问我还需要重新建个A1,A2的索引吗?
------解决方案--------------------
请问我还需要重新建个A1,A2的索引吗?

可以不用建a1,a2的索引的
------解决方案--------------------
因为这个索引是越少越好,索引多了,会导致insert、update等操作的性能下降。

而原来你已经建了包括字段A1,A2,A3,A4的复合索引,而你查询只用到A1,A2字段,那么原来的索引也能符合你的新的查询a1,a2字段的需求的
------解决方案--------------------
具体,你可以通过查看执行计划来确认的。

快捷键是:ctrl+M 就能显示实际的执行计划
------解决方案--------------------
是否建立索引是根据实际情况来决定的,例如你这个如果A1,A2,A3,A4构成联合主键,那么就将其设为主键,没必要建立任何索引,同样可以提升查询速度
------解决方案--------------------
如果你的索引中列顺序是按照你说的那样,没必要再建
------解决方案--------------------
不建议建a1,a2的索引
索引多了,会导致insert、update等操作的性能下降
数据量大的情况下尤为明显
你可以通过查看执行计划开销,
Ctrl+L查看执行计划开销
同一个查询,开销越小 性能越高