실행/파싱고급Oracle 전용

Execution Plan (실행계획)

옵티마이저가 SQL을 어떻게 실행할지 결정한 단계별 계획

정의

옵티마이저(CBO)가 통계 정보를 기반으로 결정한 SQL 처리 절차. 어떤 테이블 접근 방식(Full Scan, Index Range Scan 등), 어떤 조인 방식(NL/Hash/Sort Merge), 어떤 순서로 처리할지가 모두 담긴다. EXPLAIN PLAN 또는 DBMS_XPLAN.DISPLAY_CURSOR로 확인한다. 통계가 부정확하면 옵티마이저가 잘못된 계획을 선택할 수 있다.

왜 중요한가?

튜닝의 시작점. 느린 SQL을 만나면 가장 먼저 실행계획부터 본다. Full Scan이 적절한지, 인덱스가 의도대로 활용되는지, 조인 순서가 효율적인지가 모두 여기에 드러난다.

틀리기 쉬운 포인트

  • !EXPLAIN PLAN과 실제 실행계획은 다를 수 있습니다(바인드 피킹, 통계 변화).
  • !실제 운영 SQL은 DISPLAY_CURSOR로 봐야 정확.
  • !Cost는 절대 비용이 아닌 상대 추정치입니다.

예시

  EXPLAIN PLAN FOR
SELECT *
FROM employees
WHERE dept_id = 10;
SELECT *
FROM TABLE(DBMS_XPLAN.DISPLAY);

성능 포인트

!EXPLAIN PLAN과 실제 실행계획은 다를 수 있다. 운영 SQL은 DBMS_XPLAN.DISPLAY_CURSOR로 봐야 정확.

관련 개념

관련 문제 풀어보기

관련 카테고리