DBMS_SPH
DBMS_SPH 패키지의 기본 개념과 패키지 내의 프러시저를 사용하는 방법을 설명합니다.
개요
DBMS_SPH 패키지는 SQL Plan History(이하 SPH) 기능을 사용하는데 필요로 하는 기능을 제공하기 위 한 패키지입니다. SPH는 서버가 실행한 SQL의 이력을 저장 및 관리해주는 기능입니다.
Tibero는 SQL로부터 실행계획을 만들어 실행합니다. 이 실행계획은 V$SQL_PLAN 등의 dynamic view를 통해 조회할 수 있습니다. 그러나 실행계획이 오래동안 사용되지 않거나 서버가 재부팅되면 그 실행계획은 메 모리에서 삭제됩니다. 이 때문에 오랜 시간에 걸친 실행계획의 변화를 감지하고 추적하기가 어렵습니다.
SPH는 실행계획을 별도의 테이블에 저장함으로써 시간에 따른 실행계획 변화를 사용자가 쉽게 관리할 수 있게 도와줍니다. 단, 이 패키지는 SYS 사용자만 사용 가능합니다.
프러시저
본 절에서는 DBMS_SPH 패키지에서 제공하는 프러시저를 설명합니다.
REPORT_PLANS
지정된 SQL의 실행계획 변화 이력을 출력합니다. REPORT_PLANS_BY_DATE와 동작이 같으나 인자의 타입만 다릅니다. 결과는 화면에 출력할 수 있고 파일로 저장할 수도 있습니다. 화면에 출력을 원할 때(인자 TO_FILE 이 FALSE일 때)는 serveroutput을 켜고 실행해야 합니다.
다음은 결과가 파일로 저장되는 경로입니다.
$TB_HOME/instance/$TB_SID/dump/report/sph_report.{mthr_pid}.{current_time}REPORT_PLANS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
PROCEDURE REPORT_PLANS
(
SQL_HASH_VALUE IN NUMBER,
DURATION IN PLS_INTEGER DEFAULT 24*365*1000,
TO_FILE IN BOOLEAN DEFAULT TRUE
);파라미터
SQL_HASH_VALUE
리포트할 SQL의 HASH VALUE
DURATION
SQL의 이력을 출력할 기간
인자는 시작 시점을 의미하며 종료 시점은 항상 현재
기준 : 실행계획의 마지막 실행시간
단위 : 시간(hour)
– 범위 : 0~243651000
– 기본값 : 243651000시간(약 1000년)
TO_FILE
리포트 내용을 파일로 저장할지를 설정
TRUE : 내용이 파일에 저장 (기본값)
FALSE : 내용이 화면에 출력
예외 상황
PARAMETER_OUT_OF_RANGE
파라미터가 지정된 범위를 벗어난 경우
예제
REPORT_PLANS_BY_DATE
지정된 SQL의 실행계획 변화 이력을 출력합니다. REPORT_PLANS와 동작이 같으나 인자의 타입만 다릅니다. 결과는 화면에 출력할 수 있고 파일로 저장할 수도 있습니다. 화면에 출력을 원할 때(인자 TO_FILE이 FALSE 일 때)는 serveroutput을 켜고 실행해야 합니다.
다음은 결과가 파일로 저장되는 경로입니다.
REPORT_PLANS_BY_DATE 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
SQL_HASH_VALUE
리포트할 SQL의 HASH VALUE
START_DATE
SQL의 이력을 출력할 기간의 시작 시점. 종료 시점은 항상 현재.
기준 : 실행계획의 마지막 실행 시간
단위 : 일(day)
범위 : SYSDATE - 3651000 ~ SYSDATE
기본값 : SYSDATE - 3651000(SYSDATE로부터 약 1000년)
TO_FILE
리포트 내용을 파일로 저장할지를 설정
TRUE : 내용이 파일에 저장 (기본값)
FALSE : 내용이 화면에 출력.
예외 상황
PARAMETER_OUT_OF_RANGE
파라미터가 지정된 범위를 벗어난 경우
예제
REPORT_PLAN_HISTORY
조건을 만족하는 모든 SQL의 실행계획 변화 이력을 출력합니다. REPORT_PLAN_HISTORY_BY_DATE와 동작이 같으나 인자의 타입만 다릅니다. 결과는 화면에 출력할 수 있고 파일로 저장할 수도 있습니다. 화면에 출력을 원할 때(인자 TO_FILE이 FALSE일 때)는 serveroutput을 켜고 실행해야 합니다.
다음은 결과가 파일로 저장되는 경로입니다.
REPORT_PLAN_HISTORY 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
DURATION
SQL의 이력을 출력할 기간. 인자는 시작 시점을 의미하며 종료 시점은 항상 현재.
기준 : 실행계획의 마지막 실행 시간
단위 : 시간(hour)
– 범위 : 0~243651000
– 기본값 : 243651000시간(약 1000년)
MIN_PLAN_COUNT
출력할 SQL의 최소 실행계획 수. 예를 들어 2로 지정하면 둘 이상의 실 행계획을 가지는 SQL만 출력.
– 범위 : 1 ~ 1000000
– 기본값 : 1
TO_FILE
리포트 내용을 파일로 저장할지를 설정.
TRUE : 내용이 파일에 저장됨. (기본값)
FALSE : 내용이 화면에 출력됨.
예외 상황
PARAMETER_OUT_OF_RANGE
파라미터가 지정된 범위를 벗어난 경우
예제
REPORT_PLAN_HISTORY_BY_DATE
조건을 만족하는 모든 SQL의 실행계획 변화 이력을 출력합니다. REPORT_PLAN_HISTORY와 동작이 같 으나 인자의 타입만 다릅니다. 결과는 화면에 출력할 수 있고 파일로 저장할 수도 있습니다. 화면에 출력을 원할 때(인자 TO_FILE이 FALSE일 때)는 serveroutput을 켜고 실행해야 합니다.
다음은 결과가 파일로 저장되는 경로입니다.
REPORT_PLAN_HISTORY_BY_DATE 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
START_DATE
SQL의 이력을 출력할 기간의 시작 시점. 종료 시점은 항상 현재.
기준 : 실행계획의 마지막 실행 시간
단위 : 일(day)
범위 : SYSDATE - 3651000 ~ SYSDATE
기본값 : SYSDATE - 3651000(SYSDATE로부터 약 1000년)
MIN_PLAN_COUNT
출력할 SQL의 최소 실행계획 수. 예를 들어 2로 지정하면 둘 이상의 실 행계획을 가지는 SQL만 출력.
– 범위 : 1 ~ 1000000
– 기본값 : 1
TO_FILE
리포트 내용을 파일로 저장할지를 설정.
– TRUE : 내용이 파일에 저장. (기본값)
– FALSE : 내용이 화면에 출력.
예외 상황
PARAMETER_OUT_OF_RANGE
파라미터가 지정된 범위를 벗어난 경우.
예제
TRUNCATE_PLAN_HISTORY
SPH에 저장된 실행계획 이력을 삭제합니다. TRUNCATE_PLAN_HISTORY_BY_DATE와 동작은 같으며 인자만 다릅니다.
TRUNCATE_PLAN_HISTORY 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
RETENTION_PERIOD
SQL 이력을 삭제할 기간을 지정. 이 기간동안 실행되지 않은 실행계획은 모두 삭제됨
– 단위 : 시간(hour)
– 범위 : 0 ~ 243651000
– 기본값 : 243651000(약 1000년)
MAX_COUNT
실행계획을 삭제하지 않고 유지할 SQL의 수
RETENTION_PERIOD와 MAX_COUNT를 모두 지정하면 두 조건을 모두 만족시키는 SQL만이 유지
– 범위 : 0 ~ 1000000
– 기본값 : 1000000
예외 상황
PARAMETER_OUT_OF_RANGE
파라미터가 지정된 범위를 벗어난 경우
예제
TRUNCATE_PLAN_HISTORY_BY_DATE
SPH에 저장된 실행계획 이력을 삭제합니다. TRUNCATE_PLAN_HISTORY와 동작은 같으며 인자만 다릅니다.
TRUNCATE_PLAN_HISTORY_BY_DATE 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
START_DATE
SQL 이력을 삭제할 기준 시점. 이 시점 이전의 모든 실행계획 정보가 삭제됨
단위 : 시간(hour)
범위 : SYSDATE - 3651000 ~ SYSDATE
기본값 : SYSDATE - 3651000(SYSDATE로부터 약 1000년)
MAX_COUNT
실행계획을 삭제하지 않고 유지할 SQL의 수
START_DATE와 MAX_COUNT를 모두 지정하면 두 조건을 모두 만족시키는 SQL만이 유지됨.
– 범위 : 0 ~ 1000000
– 기본값 : 1000000
예외 상황
PARAMETER_OUT_OF_RANGE
파라미터가 지정된 범위를 벗어난 경우
예제
UPDATE_PLAN_HISTORY
라이브러리 cache의 실행계획을 SPH에 저장합니다.
UPDATE_PLAN_HISTORY 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
MIN_EXEC_COUNT
업데이트 대상이 될 실행계획의 최소 실행 회수 이 값 미만으로 실행된 실행계획은 SPH에 저장되지 않음
– 범위 : 1 ~ 1000000
– 기본값 : 1
예외 상황
PARAMETER_OUT_OF_RANGE
파라미터가 지정된 범위를 벗어난 경우
예제
Last updated

