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

group by 效率的问题

注释那句放出来 好像就全表扫描了

SQL code

select task_code,component_code,operatoruser_code,sum(statistical_data) as data1   
from 
(
select task_code,component_code,operatoruser_code,statistical_data
from T_assessdata where task_code>' ' 
--and operatortime >='20110301000000' and operatortime<='20110930235959'
group by task_code,component_code,operatoruser_code,statistical_data
)a
group by task_code,component_code,operatoruser_code




120W条数据 日期条件去掉 0.71秒 加上 4.3秒

------解决方案--------------------
考虑对operatortime建立索引.
------解决方案--------------------
弄个位图索引把。那要快很多
------解决方案--------------------
探讨
注释那句放出来 好像就全表扫描了


SQL code


select task_code,component_code,operatoruser_code,sum(statistical_data) as data1
from
(
select task_code,component_code,operatoruser_code,statistical_data
f……

------解决方案--------------------
operatortime >='20110301000000' 
operatortime 什么格式的?怎么做字符串比较?太耗性能了,换个其它类型的,速度就上去了
------解决方案--------------------
[Quote=引用:]

operatortime > = '20110301000000 '
operatortime 什么格式的?怎么做字符串比较?太耗性能了,换个其它类型的,速度就上去了
[/Quote]是啊~
------解决方案--------------------
求求你们:少贪点吧
------解决方案--------------------
把字符,截断,比较前面的,年月日.