SQLP

시험 직전 요약장

판단 기준과 헷갈리는 개념, 대표 예제를 짧게 확인하세요.

이론 목록

예상 실행계획 확인: EXPLAIN PLAN·PLAN_TABLE·AUTOTRACE

원래 이론 →

판단 기준

같은 STATEMENT_ID로 여러 Plan이 있을 때는 filter_preds를 이용해 PLAN_ID를 제한할 수 있습니다.

SQL
SELECT *
FROM TABLE(
  DBMS_XPLAN.DISPLAY(
    table_name   => 'PLAN_TABLE',
    statement_id => 'EMP_DEPT_V1',
    format        => 'TYPICAL +PREDICATE',
    filter_preds  => 'plan_id = 42'
  )
);

filter_preds는 PLAN_TABLE에 적용되는 SQL Predicate 문자열이므로 Application이 사용자 입력을 그대로 전달하면 SQL Injection 위험이 있습니다. 미리 정한 안전한 조건만 사용합니다.

이 부분의 원문 →

헷갈리는 개념

혼동하기 쉬운 판단정확한 기준
PLAN_TABLE은 항상 사용자가 새로 만들어야 한다현대 Oracle은 SYS.PLAN_TABLE$ GTT와 PLAN_TABLE Synonym을 자동 제공하며 필요 시 Local Table을 만든다
utlxplan.sql이 공용 Synonym을 만든다Local Sample PLAN_TABLE은 utlxplan, 공용 GTT·Synonym 구성은 catplan 역할이다
EXPLAIN PLAN이 대상 SQL을 실행한다대상 SQL은 실행하지 않고 PLAN_TABLE에 예상 계획 행을 Insert한다
EXPLAIN PLAN은 자동 Commit한다DML이므로 Implicit Commit을 발생시키지 않는다
STATEMENT_ID가 같으면 Plan도 하나다같은 ID에 여러 PLAN_ID가 존재할 수 있다
DISPLAY는 세 인자만 가진다네 번째 선택 인자 filter_preds가 있으며 보안에 주의한다
NULL Statement ID면 아무 계획이나 표시한다조건에 맞는 가장 최근 Explain Plan을 기본 표시한다
TRACEONLY는 SQL 실행을 막는다출력만 억제하며 TRACEONLY EXPLAIN 외에는 실제 실행될 수 있다
TRACEONLY STATISTICS는 Fetch하지 않는다통계를 위해 Query Data를 Fetch하되 화면에 출력하지 않는다
AUTOTRACE 계획은 실제 Child Plan이다EXPLAIN PLAN 기반 예상 계획이다
AUTOTRACE 통계는 Operation별 통계다Statement 전체 Session 통계 차이다
DML TRACEONLY는 데이터를 변경하지 않는다실제 DML·Lock·Undo·Redo가 발생하며 자동 Rollback되지 않는다

이 부분의 원문 →

내 최근 연습 오답

현재 브라우저의 연습 채점 기록에서 공개된 단원과 연결된 오답을 확인합니다.

학습 기록 →

오답 기록을 확인하고 있습니다.