Oracle에서 쿼리 실행 계획을 보려면 먼저 아래 뷰에 대한 조회 권한이 있어야 한다.
- V$SQL
- V$SESSION
- V$SQL_PLAN
- V$SQL_PLAN_STATISTICS_ALL
먼저 세션 레벨을 변경하거나,
alter session set statistics_level=ALL;
실행계획을 보려는 쿼리에 아래 힌트를 준다.
SELECT /*+ gather_plan_statistics */ *
FROM TEST
WHERE HI = :HI
그 후 쿼리를 실행하고.. 아래 V$SQL에서 쿼리의 SQL_ID와 CHILD_NUMBER를 확인한다.
SELECT SUBSTR(SQL_TEXT, 1, 30) SQL_TEXT
, SQL_ID
, CHILD_NUMBER
FROM V$SQL
WHERE SQL_TEXT LIKE '내가 실행한 쿼리%';
(DBMS_XPLAN.DISPLAY_CURSOR의 파라미터 3개 중에 1, 2번째 파라미터 값에 위 두개가 들어간다.
두 파라미터를 null로 입력하면 가장 최근 실행계획이 보여진다)
3번째 파라미터는 출력 옵션이다.
+ 또는 -로 추가 또는 제외할 옵션을 넣을 수도 있다.
난 -rows를 넣어서 통계정보의 예측치를 제외하고 보았다.
SELECT *
FROM table(
DBMS_XPLAN.DISPLAY_CURSOR(
'위에서 가져온 SQL_ID 값', CHILD_NUMBER 값, 'allstats last -rows'
)
);
'자격증 > SQLP - 완 -' 카테고리의 다른 글
[SQLP 요약] 제 5, 6장 (이력, 소계, Top N, 고급 SQL 튜닝) - (3/4) (0) | 2024.02.19 |
---|---|
[SQLP 요약] 제 5장 인덱스와 조인 (2절 조인의 원리와 활용) - (2/4) (2) | 2024.02.07 |
[SQLP 요약] 제 5장 인덱스와 조인 (1절 인덱스 구조 및 종류 이해) - (1/4) (6) | 2024.01.29 |
[SQLP] 정규식 REGEXP_SUBSTR (0) | 2024.01.09 |
[SQLP] 시험 준비 (0) | 2023.12.29 |