[DB2] 실행계획
소프트 파싱을 지원하기 위해 실행 계획이 저장되는 메모리 영역은 패치 캐시(Plan Cache) 또는 **SQL 캐시(SQL Cache)**라고 합니다.
쿼리 변환 :
리터럴 변환 (Literal Transformation) : SQL 문에서 상수 값을 변수로 변환
조인 변환 (Join Transformation) : 다양한 조인 순서를 시도
서브쿼리 변환 (Subquery Transformation) : 다양한 조인 순서와 방법을 시도할 수 있어서..
집합 연산자 변환 : union => union all , minus => not exist
인라인 뷰 변환 (Inline View Transformation)
비교 연산자 변환 (Comparison Operator Transformation)
통계 수집 명령 :
RUNSTATS ON TABLE schema_name.table_name;
RUNSTATS ON TABLE schema_name.table_name AND INDEXES ALL;
RUNSTATS ON TABLE schema_name.table_name ON COLUMNS (column_name1, column_name2);
RUNSTATS ON TABLE schema_name.table_name WITH DISTRIBUTION AND SAMPLE 10; --샘플링을 사용한 통계 수집
실행 계획을 생성하고 확인하는 명령어 :
EXPLAIN PLAN FOR
<SQL 쿼리>;
--실행 계획을 조회
SELECT * FROM EXPLAIN_INSTANCE;
SELECT * FROM EXPLAIN_STATEMENT;
SELECT * FROM EXPLAIN_OPERATOR;
--db2exfmt 명령어로 실행 계획
db2exfmt -d <DATABASE_NAME> -o <OUTPUT_FILE> -1