실행계획 학습
실행계획의 핵심 개념을 클릭해서 알아보고, 실전 문제를 풀어보세요.
핵심 개념
카드를 클릭하면 아래에서 상세 설명과 실행계획 예시를 확인할 수 있습니다.
Full Table Scan
테이블의 모든 데이터를 처음부터 끝까지 순서대로 읽는 방식
언제 발생하나요?
WHERE 조건에 인덱스가 없거나, 테이블 대부분의 행을 읽어야 할 때 발생합니다. 인덱스가 있어도 옵티마이저가 Full Scan이 더 빠르다고 판단하면 선택됩니다.
언제 문제가 되나요?
대용량 테이블(수백만 행 이상)에서 소수의 행만 필요한데 Full Table Scan이 발생하면 불필요한 디스크 읽기가 대량 발생하여 쿼리가 매우 느려집니다.
언제는 괜찮나요?
테이블이 작거나(수천 행 이하), 전체 데이터의 대부분(10~20% 이상)을 읽어야 하는 경우에는 오히려 인덱스 스캔보다 효율적입니다.
실행계획 예시
--------------------------------------------------------------| Id | Operation | Name | Rows | Cost (%CPU)|--------------------------------------------------------------| 0 | SELECT STATEMENT | | 1000 | 450 (2)||* 1 | TABLE ACCESS FULL | EMPLOYEES | 1000 | 450 (2)|--------------------------------------------------------------
실행계획 문제 (12문제)
#1조직도 계층 쿼리 실행계획 분석
풀어보기 →#2재귀 CTE 실행계획에서 성능 개선점 파악
풀어보기 →#3Full Table Scan 병목 찾기
풀어보기 →#4Nested Loop Join 실행계획 분석
풀어보기 →#5Hash Join 실행계획의 Build/Probe 식별
풀어보기 →#6Sort 연산이 포함된 실행계획
풀어보기 →#7서브쿼리 실행계획의 비효율 분석
풀어보기 →#8SQL 실행 흐름 이해
풀어보기 →#9DML 처리 흐름과 메모리 구조
풀어보기 →#10오라클 메모리 구조 전체도
풀어보기 →#11COMMIT 처리 흐름
풀어보기 →#12오라클 STARTUP 단계별 동작
풀어보기 →