SQL查询优化经验

时间:2022-10-26 23:58:59

复合sql嵌套查询,是否最外层作为条件的子查询最消耗时间

select * ...


<复合嵌套SQL语句>where 
                                where c.Oid in(select id from tb_Client_Org)
                                --c.Oid in(38,43,44,45,46,47,48,49,50,51,52,53,54,142
                                and ISNULL(a.F_9,0)+isnull(x.汇缴_社保公司,0)+isnull(x.汇缴_公积金企业,0)+isnull(y.补缴_社保公司,0)+isnull(y.补缴_公积金企业,0)<>0) t


注意红色部分是等效的结果,但如果作为外层条件有子查询,则下面红色部分的速度是上面红色部分的数百倍的速度。所以尽量避免在条件中加入子查询。