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

索引可以根据不同字段组合创建吗?

我使用优化顾问工具分析后,优化顾问给出建议,要在一个表上创建多个索引。

如:积分账户表

ID  主账户号 积分类型   积分
1  1001    消费积分   100000
2  1001    赠送积分   100
3  1002    消费积分   120000
4  1002    赠送积分   120


在使用中,会查询一个主账户号的总积分、某类型的积分


优化顾问给出建议分别创建如下索引:
CREATE STATISTICS [_dta_stat_658101385_3_1] ON [dbo].[积分账户表]([主账户号], [ID])

CREATE STATISTICS [_dta_stat_658101385_3_2_1] ON [dbo].[积分账户表]([主账户号], [积分类型], [ID])


是否有必要创建两个索引?

为什么创建索引需要与ID组合,ID是自增长主健,查询中很少会使用这个ID进行条件指定?

------解决方案--------------------
2005以上可以用CTE来循环,没必要高游标
------解决方案--------------------
引用:
如前所述,

  为了完成多个类型的循环比较,还在存储过程中使用了游标。

 我认为采用游标不是很恰当。

 现在积分类型总量有限,最多5个。

 在存储过程中使用if语句从1到5分别处理,就是多写几行sql,看起来不美观。


最好少用游标,除非是逻辑特别复杂的。

游标的这种处理方式,是循环,比较慢