SQL优化一例:懂得去除累赘,还你一身轻松
在生产库发现了一条奇葩SQL,下面进行分析。
1 2 3 4 5 6 7 8 9 |
select count(*) from ORD_MDA_CALL_INFO_D T, PRD_PRD_M P WHERE T.PRD_ID = P.PRD_ID(+) and (T.EMP_NO = :1 OR T.EMP_NO = :2) and T.MDA_CNVR_PTR_CD = :3 and T.INST_DTM > to_date(:4, 'yyyy-mm-dd hh24:mi:ss') and T.INST_DTM < to_date(:5, 'yyyy-mm-dd hh24:mi:ss') AND (T.BIZ_UNT_CD = :6 or T.BIZ_UNT_CD = 'TV') order by T.INST_DTM desc; |
问题1:count()统计行数的时候,排序操作是多余的。 问题2:left join连接中,以左表为主表,和右表通过关联条件连接,A表满足条件的数据都会被返回,而B表中没有的数据则以NULL表示。上面的SQL中T表left join P表,但是SQL中P表并没有任何过滤条件,所有过滤都是
Read more