db2查询结果加order by 后速度很慢,怎么优化

SELECTt.COLUME2FROMTAB1t,TAB2vWHEREt.COLUME1=v.COLUME1ANDv.COLUME1IN('0','1','2')ORDE... SELECT t.COLUME2 FROM TAB1 t , TAB2 v WHERE t.COLUME1= v.COLUME1 AND v.COLUME1 IN('0','1','2')
ORDER BY t.COLUME2 desc FETCH FIRST 10 ROWS ONLY ;这句语句执行速度很慢,但当我把排序ORDER BY t.COLUME2 desc 去掉后,速度很快。在TAB1中我以列COLUME1、COLUME2建立了两个索引,速度还是很慢。这里排序是必须的,数据量大概在100W条左右,请问大家有什么好的优化方法没
展开
 我来答
sbcnpc
2012-10-15
知道答主
回答量:9
采纳率:0%
帮助的人:6万
展开全部
1.create index inx1 on table TAB1 (COLUME2 asc) include (COLUME1) ALLOW REVERSE SCANS;
2.create index inx1 on table TAB2 (COLUME1 asc) ALLOW REVERSE SCANS;
3.RUNSTATS ON TABLE TAB1 and index all;
RUNSTATS ON TABLE TAB2 and index all;
追问
TAB2中COLUME1也建index了,但是速度还是很慢。表里数据量在100W条左右,下边的语句执行也很慢
SELECT sum(nvl(t.STOP_TOTAL_TIME,0)) FROM TAB1 t ,TAB2 v WHERE t.LINE_CODE = v.LINE_CODE AND v.LINE_GRADE in('0','1','2')
请问关于之前提的order by 和现在这个sql语句,有什么好的方法使执行速度快点?
追答
建索引,TAB2 :LINE_CODE列 include LINE_GRADE 列。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式