SSISO Community

시소당

조건구문의 순서에 따른 효율향상

Where조건의  구문의  순서가  SQL성능  향상에  영향을  미친다.  위의  예와  비슷하다.  예를들면  연봉이  50,000이상이고,  적어도  부하직원  25인  이상으로부터  보고를  받는  관리자의  이름을  알고  싶다.

Select  E.ename  /*  15초  */
From    emp  E
Where  E.sal  >  50000
And  E.emp_type  =  ‘MANAGER’
And  25  <  (Select  count(*)  from  emp  where  emp_mgr  =  E.empno);

<개선안>
Where구문의  처음에  처리할  대상범위를  줄여  성능을  향상시켰다.

Select  E.ename  /*  1초  */
  From    emp  E
Where  And  25  <  (Select  count(*)  from  emp  where  emp_mgr  =  E.empno);
        And  E.sal  >  50000
And  E.emp_type  =  ‘MANAGER’

643 view

4.0 stars