当前位置: 代码迷 >> Sql Server >> 创建索引 2个字段 同一个目录名称 与2个字段分别命名有什么区别
  详细解决方案

创建索引 2个字段 同一个目录名称 与2个字段分别命名有什么区别

热度:34   发布时间:2016-04-24 09:31:31.0
创建索引 2个字段 同一个索引名称 与2个字段分别命名有什么区别
CREATE INDEX IX_Qcountb_gb91_gb51 ON Qcountb(gb91,gb51)     
CREATE INDEX IX_Qcountb_gb91_gb51 ON Qcountb(gb91)   
 CREATE INDEX IX_Qcountb_gb91_gb512 ON Qcountb(gb51)     
两者有什么区别呢 

------解决思路----------------------
有,第一个的统计信息只存在第一列,后面两个的统计信息都有
------解决思路----------------------
统计信息直接影响优化器的执行方案,但是索引数量过多并不一定就是好事。索引数量及列的选择都应该做好评估或者测试
------解决思路----------------------
这很难给个准,数据的选择度、数据分布都有影响,你可以测试啊,是两个索引快还是一个索引快,测一下就出来了。从代码来看,假设表上没有过多索引,分开两个应该会高效一点
------解决思路----------------------
即使是第一个索引,可能由于某些原因(比如数据分布、量、选择度、数据类型、碎片等等),只要把第二列换成第一列,效率又明显提高或者降低。我这里只是假设而已。
所以你最好在贴近实际环境的测试环境甚至实际环境下测试