Tuning 대상 식별 도구
5. SQL Plan History (SPH)
SQL Plan History는 서버가 실행한 SQL의 이력을 저장, 관리하는 기능입니다.
실행계획이 오랜기간 사용되지 않거나 서버가 재부팅되면 그 실행계획은 메모리에서 삭제되어 변화를 감지하고 추적하기가 어렵습니다. SPH는 실행계획을 별도의 테이블에 저장함으로써 시간에 따른 실행계획 변화를 사용자가 쉽게 관리할 수 있도록 합니다.
Note!
Tibero 5 SP1 버전부터 SPH 기능을 포함합니다.

- ldbms_sph.update_plan_history(min_exec_count=>n)
현재 library cache의 plan 중에서 n번 이상 실행된 plan을 테이블에 저장합니다.
- ldbms_sph.report_plan_history_by_date(start_date=>d,
min_plan_count=>k,
to_file=>true)
d일 이후 실행된 SQL 중 k개 이상의 plan을 가지는 SQL의 plan변화를 파일로 출력합니다.
(To_file이 false이면 화면에 출력합니다._set serverout on)
- ldbms_sph.report_plans_by_date(sql_hash_value=>n,
start_date=>d,
to_file=>true)
Hash_value가 n인 쿼리의 d일(SQL 이력 출력할 시작시점) 이후 실행 상황을 출력합니다.
SPH 사용 방법
- 꾸준하게 Plan 변화 기록: dbms_job 패키지 사용해 주기적으로 실행합니다.
- 패치 전후의 Plan 변화 감지: 패치 전후에 update_plan_history()를 수행합니다.