[DB Study] DBMS_XPLAN 사용법
👉 DBMS_XPLAN 사용법
-
해당 객체 SELECT 권한 부여
- V$SESSION
- V$SQL_PLAN
- V$SQL(optional)
- V$SQL_PLAN_STATISTICS_ALL
-
STATISTICS_LEVEL 수정
ALTER SESSION SET STATISTICS_LEVEL = ALL;
- 쿼리 실행 계획 확인
3.1. SQL 실행
3.2. V$SQL 에서 SQL_ID 확인
3.3. DBMS_XPLAN.DISPLAY_CURSOR 조회
-- 1. 대상 SQL 실행
SELECT *
FROM DEPT;
-- 2. SQL_ID 조회
SELECT SQL_ID
, SQL_TEXT
FROM V$SQL
WHERE SQL_TEXT LIKE '%DEPT%'
ORDER BY LAST_ACTIVE_TIME DESC;
-- 3. XPLAN 확인
SELECT *
FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('SQL_ID', 0, 'FORMAT'));
-
ALLSTATS : 실제 액세스한 로우수와 수행시간 그리고 CR, PR, PW 정보를 보여준다. / 수행횟수에 따라 누적된 값을 보여준다.
-
ALLSTATS LAST : 위와 동일
-
ADVANCED ALLSTATS LAST : DBMS_XPLAN.DISPLAY_CURSOR에서 지원하는 모든 Format의 정보를 보여준다.
👉 PLAN 항목 내용
- Basics 항목
1.1. ID : 각 Operationd의 ID (*이(가) 달려있는 경우 Filter에 관한 정보)
1.2. Operation : 각 실행되는 JOB
1.3. Name : Table 및 Index 명
- Query Optimizer Estimations 항목 (예상치)
2.1. E-Rows : 각 Operation이 끝났을 때 return 되는 건
2.2. E-Bytes : 각 Operation이 Temporany Space를 사용한 양
2.3. Cost : CPU 자원 사용량
2.4. E-Time : 수행시간
- Runtime Statistics 항목
3.1. Starts : 각 Operation을 반복 수행한 건수
3.2. A-Rows : 각 Operation이 return 한 건수
3.3. A-Time : 실제 실행시간
- I/O Statistics
4.1. Buffers : 각 Operation이 Memory에서 읽은 Block 수
4.2. Reads : 각 Operation이 Disk에서 Read한 Block 수
4.3. Writes : 각 Operation이 Disk에서 White한 Block 수