행위

카테시안 프로덕트 튜닝 기법

DB CAFE

thumb_up 추천메뉴 바로가기


카테시안 프로덕트 튜닝 기법[편집]

  • 튜닝전
SELECT 'AAA' GBN
     , EMP_ID,EMP_NAME 
  FROM EMP
 WHERE DEPT_NO = 10
 UNION ALL
SELECT 'BBB' GBN
     , EMP_ID,EMP_NAME 
  FROM EMP
 WHERE DEPT_NO IN ( 10 , 20 )


  • 카테시안 프로덕트로 변경
SELECT CASE WHEN RCNT =2 THEN 'BBB' ELSE 'AAA' END GBN
     , EMP_ID,EMP_NAME 
  FROM EMP
     , (SELECT ROWNUM RCNT FROM DUAL CONNECT BY LEVEL <= 2) -- 카테시안 
 WHERE DEPT_NO IN ( 10 , 20 )
   AND RCNT <= CASE WHEN A.DEPT_NO = 10 THEN  2 ELSE 1 END -- 분기 조건
GROUP BY EMP_ID,EMP_NAME 
       , CASE WHEN RCNT = 2 THEN 'BBB' ELSE 'AAA' END