Oracle_Sql语句执行速度慢

来源:百度知道 编辑:UC知道 时间:2024/06/24 07:40:36
with tab as
(select o.*,c.id,c.reportseq,c.consultationresult,c.consultationdr, c.recorderid,c.recorder con_recorder,c.recorddt con_recorddt
from vieworderlist o
left join T_CONSULTATION c on o.orderseq =c.orderseq
where c.orderseq is not null)

select * from tab
where OrderDT>='2009-04-28 00:00:00' and OrderDT<='2009-10-29 23:59:59'
and ( MODALITY='CR' or MODALITY='CT' or MODALITY='US' or MODALITY='MR' or MODALITY='ES')
and ( PATTYPE='W' or PATTYPE='P' or PATTYPE='O' or PATTYPE='I')
要执行30秒,但是写成下边的则瞬间执行完成
with tab as
(select o.*, c.id,c.reportseq,c.consultationresult,c.consultationdr, c.recorderid,c.recorder con_recorder,
c.recorddt con_recorddt
from vieworderlist o
left join T_CONSULTATION c on o.orderseq =c.orderseq
where c.orderseq is not null)

select * from tab
where OrderDT>=

or用太多必然慢啊~
http://hi.baidu.com/life_amuse_learn/blog/item/50f97735384e6c325ab5f5d7.html
这里面有sql语句优化问题
希望对你有帮助

你的or 完全可以用exists 代替