실행계획 순서가 헷갈려서요 ㅠㅠ 순서좀 부탁드립니다! 0 2 780

by 뜨디 [Oracle Tuning] [2020.05.13 23:50:21]


*************************[Explain Plan Time: 2020/05/13 15:07:38]*************************
Execution Plan
-----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=ALL_ROWS (Cost=105 Card=20 Bytes=2K)
   1    0   SORT (AGGREGATE) (Card=1 Bytes=41)
   2    1     NESTED LOOPS (Cost=7 Card=1 Bytes=41)
   3    2       NESTED LOOPS (Cost=7 Card=1 Bytes=41)
   4    3         TABLE ACCESS (BY INDEX ROWID BATCHED) OF 'LFMORD.STB_ORDER_PROD' (TABLE) (Cost=5 Card=1 Bytes=30)
   5    4           INDEX (RANGE SCAN) OF 'LFMORD.IDX_ORDER_PROD_TUN' (INDEX) (Cost=4 Card=1)
   6    5             TABLE ACCESS (BY INDEX ROWID) OF 'LFMDIS.STB_SOCIAL' (TABLE) (Cost=2 Card=1 Bytes=12)
   7    6               INDEX (UNIQUE SCAN) OF 'LFMDIS.PK_STB_SOCIAL' (INDEX (UNIQUE)) (Cost=1 Card=1)
   8    5             TABLE ACCESS (BY INDEX ROWID) OF 'LFMDIS.STB_SOCIAL' (TABLE) (Cost=2 Card=1 Bytes=12)
   9    8               INDEX (UNIQUE SCAN) OF 'LFMDIS.PK_STB_SOCIAL' (INDEX (UNIQUE)) (Cost=1 Card=1)
  10    3         INDEX (UNIQUE SCAN) OF 'LFMORD.PK_STB_ORDER' (INDEX (UNIQUE)) (Cost=1 Card=1)
  11    2       TABLE ACCESS (BY GLOBAL INDEX ROWID) OF 'LFMORD.STB_ORDER' (TABLE) (Cost=2 Card=1 Bytes=11)
  12    0   NESTED LOOPS (Cost=34 Card=20 Bytes=2K)
  13   12     TABLE ACCESS (BY INDEX ROWID BATCHED) OF 'LFMDIS.STB_SOCIAL_PRODUCT' (TABLE) (Cost=13 Card=20 Bytes=1K)
  14   13       INDEX (RANGE SCAN) OF 'LFMDIS.PK_STB_SOCIAL_PRODUCT' (INDEX (UNIQUE)) (Cost=2 Card=20)
  15   12     PARTITION RANGE (ITERATOR) (Cost=2 Card=1 Bytes=15)
  16   15       INDEX (RANGE SCAN) OF 'LFMCOM.PIDX_PRODUCT_TUN' (INDEX) (Cost=2 Card=1 Bytes=15)
-----------------------------------------------------------

by 마농 [2020.05.14 08:54:50]

크게 보면 0번(SELECT) 부모의 자식이 1번(SORT)과 12번(NL)이 있네요.
이 둘 사이의 조인 오퍼레이션이 보이질 않는 걸 보면 아마도
12번이 메인쿼리이고 1번이 스칼라서브쿼리일 듯 합니다.
스칼라서브쿼리는 실행계획의 상단에 표현되지만 마지막에 실행된다고 보면 될 것 같습니다.
- 메인 : 14 13 16 15 12
- 서브 : 7 6 9 8 5 4 10 3 11 2 1
- 전체 : (14 13 16 15 12) (7 6 9 8 5 4 10 3 11 2 1) 0


by 뜨디 [2020.05.14 09:23:45]

그쳐 ㅠㅠ 그게맞는거져? ㅠㅠ 너무 헷갈렸습니다.... 원래 정석대로 실행순서면 위에가 먼저인데 그러면 변수를 받아와서 인덱스를 탈수가없을건데 하면서 궁금했었거든여 ㅋㅋ 감사합니다! 항상 도움 많이받습니다!

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입