내용 목차
본 장에서는 DBMS_APM 패키지의 기본 개념과 패키지 내의 프러시저를 사용하는 방법을 설명한다. 보다 자세한 설명은 Tibero 관리자 안내서의 "제14장 Automatic Performance Monitoring"을 참고한다.
본 절에서는 DBMS_APM 패키지에서 제공하는 프러시저를 설명한다.
APM을 위한 스냅샷을 바로 남긴다.
CREATE_SNAPSHOT 프러시저의 세부 내용은 다음과 같다.
프로토타입
PROCEDURE CREATE_SNAPSHOT();
예제
exec DBMS_APM.CREATE_SNAPSHOT(); /
TAC 구성일 때 모든 인스턴스에서 APM을 위한 스냅샷을 바로 남긴다.
이때 기존에 각 스냅샷별로 부여된 Snapshot ID에 추가로 모든 인스턴스에서 함께 떨어진 스냅샷을 지칭하기 위해 Global Snapshot ID가 부여된다.
CREATE_SNAPSHOT_ALL 프러시저의 세부 내용은 다음과 같다.
프로토타입
PROCEDURE CREATE_SNAPSHOT_ALL();
예제
exec DBMS_APM.CREATE_SNAPSHOT_ALL(); /
특정 구간의 성능 분석 리포트(text)를 생성한다.
REPORT_TEXT 프러시저의 세부 내용은 다음과 같다.
프로토타입
PROCEDURE REPORT_TEXT ( begin_time IN DATE end_time IN DATE instance_no IN VARCHAR file_name IN VARCHAR );
파라미터
파라미터 | 설명 |
---|---|
begin_time | 성능 분석 리포트 대상 구간 중 시작 시간이다. |
end_time | 성능 분석 리포트 대상 구간 중 종료 시간이다. |
instance_no | 성능 분석 리포트 대상 인스턴스 번호이다. (기본값: ALL) |
file_name | 만들어질 성능 분석 리포트 파일명이다. (기본값: apm_report.{db_name}.{current_time}.txt) |
예제
아래의 예제는 두 개의 인자 모두 DATE 타입이므로 사용 중인 DATE 포맷에 맞게 입력해야 한다.
exec DBMS_APM.REPORT_TEXT('2011/07/01 12:00:00', '2011/07/02 11:59:59'); /
파라미터 중 file_name을 지정하면 지정된 파일명의 리포트를 출력한다.
exec DBMS_APM.REPORT_TEXT ('2011/07/01 12:00:00', '2011/07/02 11:59:59', file_name=>'apm.txt'); /
특정 Snapshot ID 또는 ID 구간의 성능 분석 리포트(text)를 생성한다.
REPORT_TEXT_ID 프러시저는 Input이 특정 ID 또는 ID 구간 두 종류로 나누어지며, 그 세부 내용은 다음과 같다.
특정 ID
프로토타입
PROCEDURE REPORT_TEXT_ID ( one_snap_id IN NUMBER file_name IN VARCHAR );
파라미터
파라미터 | 설명 |
---|---|
one_snap_id | 성능 분석 리포트 대상 스냅샷의 ID이다. |
file_name | 만들어질 성능 분석 리포트 파일명이다. (기본값: apm_report.{db_name}.{current_time}.txt) |
예제
exec DBMS_APM.REPORT_TEXT_ID(5); /
ID 구간
프로토타입
PROCEDURE REPORT_TEXT_ID ( begin_snap_id IN NUMBER end_snap_id IN NUMBER instance_no IN VARCHAR file_name IN VARCHAR );
파라미터
파라미터 | 설명 |
---|---|
begin_snap_id | 성능 분석 리포트 대상 구간 중 시작 스냅샷의 ID이다. |
end_snap_id | 성능 분석 리포트 대상 구간 중 종료 스냅샷의 ID이다. |
instance_no | 성능 분석 리포트 대상 인스턴스 번호이다. (기본값: ALL) |
file_name | 만들어질 성능 분석 리포트 파일명이다. (기본값: apm_report.{db_name}.{current_time}.txt) |
예제
파라미터 중 instance_no를 입력하지 않으면 기본적으로 모든 인스턴스를 대상으로 하는 리포트를 출력한다.
exec DBMS_APM.REPORT_TEXT_ID(5, 10); /
파라미터 중 instance_no를 입력하면 해당 인스턴스를 대상으로 하는 리포트를 출력한다.
exec DBMS_APM.REPORT_TEXT_ID(5, 10, instance_no=>'2'); /
특정 Snapshot GID 또는 GID 구간의 성능 분석 리포트(text)를 생성한다.
REPORT_TEXT_GID 프러시저는 Input이 특정 GID 또는 GID 구간 두 종류로 나누어지며, 그 세부 내용은 다음과 같다.
특정 GID
프로토타입
PROCEDURE REPORT_TEXT_GID ( one_snap_gid IN NUMBER file_name IN VARCHAR );
파라미터
파라미터 | 설명 |
---|---|
one_snap_gid | 성능 분석 리포트 대상 스냅샷의 GID이다. |
file_name | 만들어질 성능 분석 리포트 파일명이다. (기본값: apm_report.{db_name}.{current_time}.txt) |
예제
exec DBMS_APM.REPORT_TEXT_GID(3); /
GID 구간
프로토타입
PROCEDURE REPORT_TEXT_ID ( begin_snap_gid IN NUMBER end_snap_gid IN NUMBER file_name IN VARCHAR );
파라미터
파라미터 | 설명 |
---|---|
begin_snap_gid | 성능 분석 리포트 대상 구간 중 시작 스냅샷의 GID이다. |
end_snap_gid | 성능 분석 리포트 대상 구간 중 종료 스냅샷의 GID이다. |
file_name | 만들어질 성능 분석 리포트 파일명이다. (기본값: apm_report.{db_name}.{current_time}.txt) |
예제
exec DBMS_APM.REPORT_TEXT_GID(3, 4); /
마지막으로 남긴 스냅샷에 대한 성능 분석 리포트(text)를 생성한다.
REPORT_TEXT_LAST 프러시저의 세부 내용은 다음과 같다.
프로토타입
PROCEDURE REPORT_TEXT_LAST ( file_name IN VARCHAR );
파라미터
파라미터 | 설명 |
---|---|
file_name | 만들어질 성능 분석 리포트 파일명이다. (기본값: apm_report.{db_name}.{current_time}.txt) |
예제
대
exec DBMS_APM.REPORT_TEXT_LAST(); /
특정 요일, 시간대에 해당되는 스냅샷들에 대한 성능 분석 리포트(text)를 생성한다.
REPORT_TEXT_SPECIFIC_TIMES 프러시저의 세부 내용은 다음과 같다.
프로토타입
PROCEDURE REPORT_TEXT_SPECIFIC_TIMES ( begin_time IN DATE end_time IN DATE begin_hour IN VARCHAR2 end_hour IN VARCHAR2 days IN VARCHAR2 instance_no IN VARCHAR2 file_name IN VARCHAR );
파라미터
파라미터 | 설명 |
---|---|
begin_time | 성능 분석 리포트 대상 구간 중 시작 날짜와 시간이다. 사용 중인 DATE 포맷에 맞게 입력해야 한다. |
end_time | 성능 분석 리포트 대상 구간 중 종료 날짜와 시간이다. 사용 중인 DATE 포맷에 맞게 입력해야 한다. |
begin_hour | 성능 분석 리포트 대상 구간 중 출력되는 스냅샷 시간대의 시작 시간이다. VARCHAR2 타입으로 'HH24:MM' 포맷을 따라야 한다. (예: 09:00) |
end_hour | 성능 분석 리포트 대상 구간 중 출력되는 스냅샷 시간대의 종료 시간이다. VARCHAR2 타입으로 'HH24:MM' 포맷을 따라야 한다. (예: 18:00) |
days | 성능 분석 리포트 대상 구간 중 리포트 출력할 스냅샷의 요일이다. (기본값: MON,TUE,WED,THU,FRI,SAT,SUN) |
instance_no | 성능 분석 리포트 대상 인스턴스 번호이다. (기본값: ALL) |
file_name | 만들어질 성능 분석 리포트 파일명이다. (기본값: apm_report.{db_name}.{current_time}.txt) |
예제
아래의 예제는 1월 1일 00:00부터 2월 1일 23:59:59 사이에 월,수,금 오전 9시부터 오후 6시까지에 해당하는 스냅샷에 대한 리포트 생성을 하는 예제이다.
exec DBMS_APM.REPORT_TEXT_SPECIFIC_TIMES( '2015/01/01 00:00:00', '2015/02/01 23:59:59', '09:00', '18:00', 'MON,WED,FRI'); /
파라미터 중 instance_no를 입력하면 해당 instance를 대상으로 하는 리포트를 출력한다. 입력하지 않는 경우 기본적으로 모든 instance를 대상으로 리포트를 출력한다.
exec DBMS_APM.REPORT_TEXT_SPECIFIC_TIMES( '2015/01/01 00:00:00', '2015/02/01 23:59:59', '09:00', '18:00', 'MON,WED,FRI', instance_no=>'1'); /
파라미터 중 file_name을 지정하면 지정된 파일명의 리포트를 출력한다.
exec DBMS_APM.REPORT_TEXT_SPECIFIC_TIMES( '2015/01/01 00:00:00', '2015/02/01 23:59:59', '09:00', '18:00', 'MON,WED,FRI', instance_no=>'1', 'workinghours.txt'); /
유저가 지정한 스냅샷들에 대한 성능 분석 리포트(text)를 생성한다.
REPORT_TEXT_MARKED 프러시저의 세부 내용은 다음과 같다.
프로토타입
PROCEDURE REPORT_TEXT_MARKED( file_name IN VARCHAR );
파라미터
파라미터 | 설명 |
---|---|
file_name | 만들어질 성능 분석 리포트 파일명이다. (기본값: apm_report.{db_name}.{current_time}.txt) |
예제
지정한 스냅샷에 대한 리포트를 생성해주기 때문에 먼저 출력할 스냅샷을 지정해야한다.
V$APM_SNAPSHOT을 조회하면 스냅샷과 관련된 정보 및 marking 되었는지 여부를 볼 수 있다.
select * from V$APM_SNAPSHOT; /
SNAP_ID THREAD# INSTANCE_NUMBER BEGIN_INTERVAL_TIME ---------- ---------- --------------- -------------------------------- END_INTERVAL_TIME SNAP_GID MARKED_FOR_REPORT -------------------------------- ---------- ----------------- 1 0 0 2015/11/26 2015/11/26 N 2 0 0 2015/11/27 2015/11/27 N /
SNAP_ID 2번에 해당하는 리포트를 출력하기 위해 다음과 같은 query를 실행한다.
update V$APM_SNAPSHOT set MARKED_FOR_REPORT='Y' where SNAP_ID=2; commit; /
V$APM_SNAPSHOT을 다시 조회하면 원하는 스냅샷이 마킹되었음을 확인할 수 있다.
SNAP_ID THREAD# INSTANCE_NUMBER BEGIN_INTERVAL_TIME ---------- ---------- --------------- -------------------------------- END_INTERVAL_TIME SNAP_GID MARKED_FOR_REPORT -------------------------------- ---------- ----------------- 1 0 0 2015/11/26 2015/11/26 N 2 0 0 2015/11/27 2015/11/27 Y /
원하는 스냅샷을 모두 마킹하였으면 리포트 출력을 실행시킨다.
exec DBMS_APM.REPORT_TEXT_MARKED(); /
파라미터 중 file_name을 지정하면 지정된 파일명의 리포트를 출력한다.
exec DBMS_APM.REPORT_TEXT_MARKED('marked.txt'); /
특정 구간의 성능 분석 리포트(html)를 생성한다.
REPORT_HTML 프러시저의 세부 내용은 다음과 같다.
프로토타입
PROCEDURE REPORT_HTML ( begin_time IN DATE end_time IN DATE instance_no IN VARCHAR file_name IN VARCHAR );
파라미터
파라미터 | 설명 |
---|---|
begin_time | 성능 분석 리포트 대상 구간 중 시작 시간이다. |
end_time | 성능 분석 리포트 대상 구간 중 종료 시간이다. |
instance_no | 성능 분석 리포트 대상 인스턴스 번호이다. (기본값: ALL) |
file_name | 만들어질 성능 분석 리포트 파일명이다. (기본값: apm_report.{db_name}.{current_time}.html) |
예제
다음의 예제는 두 개의 인자 모두 DATE 타입이므로, 사용 중인 DATE 포맷에 맞게 입력해야 한다.
exec DBMS_APM.REPORT_HTML('2011/07/01 12:00:00', '2011/07/02 11:59:59'); /
파라미터 중 file_name을 지정하면 지정된 파일명의 리포트를 출력한다.
exec DBMS_APM.REPORT_HTML ('2011/07/01 12:00:00', '2011/07/02 11:59:59', file_name=>'apm.html'); /
특정 Snapshot ID 또는 ID 구간의 성능 분석 리포트(html)를 생성한다.
REPORT_HTML_ID 프러시저는 Input이 특정 ID 또는 ID 구간 두 종류로 나누어지며, 그 세부 내용은 다음과 같다.
특정 GID
프로토타입
PROCEDURE REPORT_HTML_ID ( one_snap_id IN NUMBER file_name IN VARCHAR );
파라미터
파라미터 | 설명 |
---|---|
one_snap_id | 성능 분석 리포트 대상 스냅샷의 ID이다. |
file_name | 만들어질 성능 분석 리포트 파일명이다. (기본값: apm_report.{db_name}.{current_time}.html) |
예제
exec DBMS_APM.REPORT_HTML_ID(5); /
GID 구간
프로토타입
PROCEDURE REPORT_HTML_ID ( begin_snap_id IN NUMBER end_snap_id IN NUMBER instance_no IN VARCHAR file_name IN VARCHAR );
파라미터
파라미터 | 설명 |
---|---|
begin_snap_id | 성능 분석 리포트 대상 구간 중 시작 스냅샷의 ID이다. |
end_snap_id | 성능 분석 리포트 대상 구간 중 종료 스냅샷의 ID이다. |
instance_no | 성능 분석 리포트 대상 인스턴스 번호이다. (기본값: ALL) |
file_name | 만들어질 성능 분석 리포트 파일명이다. (기본값: apm_report.{db_name}.{current_time}.html) |
예제
파라미터 중 instance_no를 입력하지 않으면 기본적으로 모든 인스턴스를 대상으로 하는 리포트를 출력한다.
exec DBMS_APM.REPORT_HTML_ID(5, 10); /
파라미터 중 instance_no를 입력하면 해당 인스턴스를 대상으로 하는 리포트를 출력한다.
exec DBMS_APM.REPORT_HTML_ID (5, 10, instance_no=>'2'); /
특정 Snapshot GID 또는 GID 구간의 성능 분석 리포트(html)를 생성한다.
REPORT_HTML_GID 프러시저는 Input이 특정 GID 또는 GID 구간 두 종류로 나누어지며, 그 세부 내용은 다음과 같다.
특정 GID
프로토타입
PROCEDURE REPORT_HTML_GID ( one_snap_gid IN NUMBER file_name IN VARCHAR );
파라미터
파라미터 | 설명 |
---|---|
one_snap_gid | 성능 분석 리포트 대상 스냅샷의 GID이다. |
file_name | 만들어질 성능 분석 리포트 파일명이다. (기본값: apm_report.{db_name}.{current_time}.html) |
예제
exec DBMS_APM.REPORT_HTML_GID(3); /
GID 구간
프로토타입
PROCEDURE REPORT_HTML_ID ( begin_snap_gid IN NUMBER end_snap_gid IN NUMBER file_name IN VARCHAR );
파라미터
파라미터 | 설명 |
---|---|
begin_snap_gid | 성능 분석 리포트 대상 구간 중 시작 스냅샷의 GID이다. |
end_snap_gid | 성능 분석 리포트 대상 구간 중 종료 스냅샷의 GID이다. |
file_name | 만들어질 성능 분석 리포트 파일명이다. (기본값: apm_report.{db_name}.{current_time}.html) |
예제
exec DBMS_APM.REPORT_HTML_GID(3, 4); /
마지막으로 남긴 스냅샷에 대한 성능 분석 리포트(html)를 생성한다.
REPORT_HTML_LAST 프러시저의 세부 내용은 다음과 같다.
프로토타입
PROCEDURE REPORT_HTML_LAST ( file_name IN VARCHAR );
파라미터
파라미터 | 설명 |
---|---|
file_name | 만들어질 성능 분석 리포트 파일명이다. (기본값: apm_report.{db_name}.{current_time}.html) |
예제
exec DBMS_APM.REPORT_HTML_LAST(); /
특정 요일, 시간대에 해당되는 스냅샷들에 대한 성능 분석 리포트(html)를 생성한다.
REPORT_HTML_SPECIFIC_TIMES 프러시저의 세부 내용은 다음과 같다.
프로토타입
PROCEDURE REPORT_HTML_SPECIFIC_TIMES ( begin_time IN DATE end_time IN DATE begin_hour IN VARCHAR2 end_hour IN VARCHAR2 days IN VARCHAR2 instance_no IN VARCHAR2 file_name IN VARCHAR );
파라미터
파라미터 | 설명 |
---|---|
begin_time | 성능 분석 리포트 대상 구간 중 시작 날짜와 시간이다. DATE 타입이므로 사용 중인 DATE 포맷에 맞게 입력해야 한다. |
end_time | 성능 분석 리포트 대상 구간 중 종료 날짜와 시간이다. DATE 타입이므로 사용 중인 DATE 포맷에 맞게 입력해야 한다. |
begin_hour | 성능 분석 리포트 대상 구간 중 출력되는 스냅샷 시간대의 시작 시간이다. VARCHAR2 타입으로 'HH24:MM' 포맷을 따라야 한다. (예: 09:00) |
end_hour | 성능 분석 리포트 대상 구간 중 출력되는 스냅샷 시간대의 종료 시간이다. VARCHAR2 타입으로 'HH24:MM' 포맷을 따라야 한다. (예: 18:00) |
days | 성능 분석 리포트 대상 구간 중 리포트 출력할 스냅샷의 요일이다. (기본값: MON,TUE,WED,THU,FRI,SAT,SUN) |
instance_no | 성능 분석 리포트 대상 인스턴스 번호이다. (기본값: ALL) |
file_name | 만들어질 성능 분석 리포트 파일명이다. (기본값: apm_report.{db_name}.{current_time}.txt) |
예제
아래의 예제는 1월 1일 00:00부터 2월 1일 23:59:59 사이에 월,수,금 오전 9시부터 오후 6시까지에 해당하는 스냅샷에 대한 리포트 생성을 하는 예제이다.
exec DBMS_APM.REPORT_HTML_SPECIFIC_TIMES( '2015/01/01 00:00:00', '2015/02/01 23:59:59', '09:00', '18:00', 'MON,WED,FRI'); /
파라미터 중 instance_no를 입력하면 해당 instance를 대상으로 하는 리포트를 출력한다. 입력하지 않는 경우 기본적으로 모든 instance를 대상으로 리포트를 출력한다.
exec DBMS_APM.REPORT_HTML_SPECIFIC_TIMES( '2015/01/01 00:00:00', '2015/02/01 23:59:59', '09:00', '18:00', 'MON,WED,FRI', instance_no=>'1'); /
파라미터 중 file_name을 지정하면 지정된 파일명의 리포트를 출력한다.
exec DBMS_APM.REPORT_HTML_SPECIFIC_TIMES( '2015/01/01 00:00:00', '2015/02/01 23:59:59', '09:00', '18:00', 'MON,WED,FRI', instance_no=>'1', 'workinghours.txt'); /
유저가 지정한 스냅샷들에 대한 성능 분석 리포트(html)를 생성한다.
REPORT_HTML_MARKED 프러시저의 세부 내용은 다음과 같다.
프로토타입
PROCEDURE REPORT_HTML_MARKED ( file_name IN VARCHAR );
파라미터
파라미터 | 설명 |
---|---|
file_name | 만들어질 성능 분석 리포트 파일명이다. (기본값: apm_report.{db_name}.{current_time}.txt) |
예제
지정한 스냅샷에 대한 리포트를 생성해주기 때문에 먼저 출력할 스냅샷을 지정해야 한다. V$APM_SNAPSHOT을 조회하면 스냅샷과 관련된 정보 및 marking 되었는지 여부를 볼 수 있다.
select * from V$APM_SNAPSHOT; /
SNAP_ID THREAD# INSTANCE_NUMBER BEGIN_INTERVAL_TIME ---------- ---------- --------------- -------------------------------- END_INTERVAL_TIME SNAP_GID MARKED_FOR_REPORT -------------------------------- ---------- ----------------- 1 0 0 2015/11/26 2015/11/26 N 2 0 0 2015/11/27 2015/11/27 N /
SNAP_ID 2번에 해당하는 리포트를 출력하기 위해 다음과 같은 query를 실행한다.
update V$APM_SNAPSHOT set MARKED_FOR_REPORT='Y' where SNAP_ID=2; commit; /
V$APM_SNAPSHOT을 다시 조회하면 원하는 스냅샷이 마킹되었음을 확인할 수 있다.
SNAP_ID THREAD# INSTANCE_NUMBER BEGIN_INTERVAL_TIME ---------- ---------- --------------- -------------------------------- END_INTERVAL_TIME SNAP_GID MARKED_FOR_REPORT -------------------------------- ---------- ----------------- 1 0 0 2015/11/26 2015/11/26 N 2 0 0 2015/11/27 2015/11/27 Y /
원하는 스냅샷을 모두 마킹하였으면 리포트 출력을 실행시킨다.
exec DBMS_APM.REPORT_HTML_MARKED(); /
파라미터 중 file_name을 지정하면 지정된 파일명의 리포트를 출력한다.
exec DBMS_APM.REPORT_HTML_MARKED('marked.txt'); /
메모리상에 담겨있는 ASH Sample들을 _APM_ACTIVE_SESSION_HISTORY 테이블에 저장한다.
FLUSH_ASH 프러시저의 세부 내용은 다음과 같다.
프로토타입
PROCEDURE FLUSH_ASH ();
예제
FLUSH_ASH 프러시저를 수행함으로서 메모리상에만 존재하던 ASH Sample들이 _APM_ACTIVE_SESSION_HISTORY 테이블상에 저장된다.
exec DBMS_APM.FLUSH_ASH(); /
특정 구간의 ASH 성능 분석 리포트(text)를 생성한다. ASH Sample은 IPARAM(ACTIVE_SESSION_HISTORY)을 Y로 세팅했을 때만 남게 되며, ASH Report는 이 Sample들의 정보를 취합하여 리포트를 작성한다.
ASH_REPORT_TEXT 프러시저의 세부 내용은 다음과 같다.
프로토타입
PROCEDURE ASH_REPORT_TEXT ( begin_time IN DATE end_time IN DATE instance_no IN VARCHAR file_name IN VARCHAR );
파라미터
파라미터 | 설명 |
---|---|
begin_time | 성능 분석 리포트 대상 구간 중 시작 시간이다. |
end_time | 성능 분석 리포트 대상 구간 중 종료 시간이다. |
instance_no | 성능 분석 리포트 대상 Instance number이다. (기본값: ALL) |
file_name | 만들어질 성능 분석 리포트 파일명이다. (기본값: ash_report.{db_name}.{current_time}.txt) |
예제
아래의 예제는 두 개의 인자 모두 DATE 타입이므로 사용 중인 DATE 포맷에 맞게 입력해야 한다.
exec DBMS_TPR.ASH_REPORT_TEXT('2015/01/29 21:00:00', '2015/01/29 22:59:59'); /
파라미터 중 file_name을 지정하면 지정된 파일명의 리포트를 출력한다.
exec DBMS_TPR.ASH_REPORT_TEXT('2015/01/29 21:00:00', '2015/01/29 22:59:59', file_name=>'ash.txt'); /
파라미터 중 instance_no를 입력하면 해당 instance를 대상으로 하는 리포트를 출력한다. 입력하지 않는 경우 기본적으로 모든 instance를 대상으로 리포트를 출력한다.
exec DBMS_TPR.ASH_REPORT_TEXT('2015/01/29 21:00:00', '2015/01/29 22:59:59', instance_no=>'1'); /