【100分】技术难点,多条件查询用不到独立索引吗?独立索引这么废吗??
如题,
系统中订单表数据量比较大,有数千万条
加任意一个索引,存储空间的开销都很大,
所以之前他们都是加的组合索引。
而实际业务上,查找的时候,
查询条件是由用户输入的,
大多数时候用户只输入很少的条件,
而且基本是随意的,
没有规律,
导致很多索引用不上,
经常会超时。
而我建议把组合索引改成独立索引,
他们不同意,
说独立索引在组合查询的时候用不到,
搞得我很晕。。。。。
大家给个意见吧
------解决方案--------------------独立索引在某些情况 是可以的。可以索引联接拿出结果。
2K5以上可以用INCLUDE包含索引
------解决方案--------------------随意的话这就不好了。可以限定一些条件来查询。以及笔数的限制。
------解决方案--------------------组合索引需要SQL语句的条件按组合顺序来写,独立索引在组合查询里查不到?这个怎么说,估计你们的沟通有点问题,他们是否理解为组合索引存在的情况下再做一些独立索引。。。
------解决方案--------------------你把查询计划贴给他们看一下就能说明问题了
谁说的独立索引用不了的?
include还与字段顺序有关系的
------解决方案--------------------对于组合查询,组合索引性能无疑是高于独立索引的。
如果你想要满足各种组合查询,那么就得建各种组合索引,付出的代价是磁盘空间增加,得到的是性能质的提升。
不存在担心空间不足又想提升性能的方案。
------解决方案--------------------
------解决方案--------------------有些公司专门用SSD硬盘来存放索引的。
还有,你可以增大内存到256GB+来提升性能。
------解决方案--------------------sql server 2008 是支持索引压缩的,我不知道你的是什么版本,还有你上KW的数据表是多少GB,以及你run在一个什么样硬件配置的服务器上?
------解决方案--------------------
或许你应该做一个统计,监控一天,把各种组合都记录下来,这样生成一个组合次数排名,排在前面的组合查询,你需要想办法去加索引,后面的我想也许可以舍弃了。