Du join pdr1 on du.xm_bh = pdr1.xm_bh
And exists(select 1 from res_cnfg where du.jfdy_bh = res_cnfg.yw_bh and pdr1.res_id = res_cnfg.res_id
)
这段代码看起来是不是怪怪的?du表与pdr1表通过xm_bh关联,然后通过exists对关联后的数据进行了过滤,过滤条件是res_cnfg这个表与du表和pdr1表关联。这段代码真的是晦涩又别扭,以至于我下定决心要重写这个SQL:将exists改成join,改后的代码如下所示:
第四次优化:全面,去掉不必要的exists条件,只获取变化的数据
本以为要跟这个SQL彻底拜拜,谁知道事与愿违,还不到2天的时间,再次收到“待办事项SQL语句超时,请帮忙优化”的邮件,看来注定要与这个SQL长相厮守了。一而再我忍了,再而三我也认了,居然给我来了个四季发财,是可忍孰不可忍,这次正好有时间,不觉有种不到楼兰死不休的决心。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/693533/viewspace-1983405/,如需转载,请注明出处,否则将追究法律责任。