반응형
오라클 실행계획 보는 방법에 대해서 설명드릴게요.
오라클 실행계획을 왜 봐야 할까요?
내가 실행한 SQL이 내부적으로 어떤 방식으로 조인을 하고 어떤 인덱스를 사용했는지 확인을 해야 튜닝 포인트를 알 수 있기 때문입니다.
실행계획 이란?
- Sql Statement이 요구한 데이터를 추출하기 위해 DBMS가 차례로 수행하는 Access 과정
- 통계정보를 기반으로 다양한 Access Path를 수립하고 그중 Cost가 가장 낮은 Access Path를 결정
- 옵티마이저에 의한 Plan이 잘못 수립될 가능성이 있기에 이해하고 제어가 필요함
실행계획 보는 법
상하 레벨은 간에는 "ID가 낮은 거" 먼저, 동급 레벨은 "ID가 높은 거" 먼저
그럼 전체적인 순서는 3번 > 2번 > 5번 > 4번 > 1번 순으로 실행됩니다.
퀴즈를 한번 풀어볼까요?
SELECT /*+ LEADING(B A) USE_NL(A) */
A.EMPNO, A.ENAME, B.DNAME
FROM EMP A
, DEPT B
WHERE A.DEPTNO = B.DEPTNO
AND A.EMPNO = '7369';
이럴 때 어떤 순서대로 실행이 될까요??
정답은 접은 글에 올릴게요.
더보기
3 -> 4 -> 2 -> 5 -> 1
두번째 문제 입니다.
SELECT /*+ INDEX(D DEPT_X01) */ *
FROM DEPT D
WHERE DNAME = 'SALES'
AND EXISTS (
SELECT /*+ NO_UNNEST PUSH_SUBQ INDEX(D2 DEPT_X01) */ 'X'
FROM EMP E, DEPT D2
WHERE E.DEPTNO = D.DEPTNO
AND E.DEPTNO = D2.DEPTNO
AND D2.DNAME = 'SALES'
AND E.JOB = 'SALESMAN'
AND E.SAL > 1000
);
더보기
2 -> 6 -> 5 -> 7 -> 4 -> 8 -> 3 -> 1
실행계획 보는 방법 좀 이해 가셨나요??
여러번 해보면 쉽게 이해 하실거라 믿습니다.
반응형
'IT > SQLP' 카테고리의 다른 글
[Oracle] 오라클 Insert into 문법, select insert (0) | 2022.06.19 |
---|---|
[SQLD / SQLP] 기출문제 질문 모음2 (0) | 2022.05.24 |
[SQLD] 기출문제 질문 모음 (0) | 2022.05.23 |
[SQL 기초강의] 7강. Group by, HAVING, ROLLUP, CUBE, GROUPING SETS (0) | 2022.05.04 |
[SQL 기초강의] 6강. 데이터 형변환 (0) | 2022.05.03 |
댓글