비IBM 쿼리 모니터링 애플리케이션이 z/OS®용
DB2® 테이블로 오프로드한 데이터에 있는 SQL문에서 쿼리 워크로드를 작성할 수 있습니다. 이 태스크를 수행하려면
오프로드된 데이터가 포함된 z/OS용
DB2 테이블의 컬럼에 데이터 카테고리를 맵핑해야 합니다. 이 주제는
이러한 데이터에서 SQL문을 캡처하기 위한 요구사항 예제도 표시합니다.
DB2 테이블의 컬럼은 SQL문에 대한 다음 정보, 해당 런타임 메트릭 및 명령문이 실행된 동안의 시간 간격을 포함해야 합니다.
- DB2 서브시스템
- 런타임 메트릭과 SQL문이 수집되는 DB2 서브시스템입니다(데이터 유형: SQL
CHAR 또는 VARCHAR).
- 플랜 이름
- DB2 플랜 이름입니다(데이터 유형: SQL
CHAR 또는 VARCHAR).
- 콜렉션
- DB2 플랜 또는 패키지 콜렉션의 ID(데이터 유형: SQL CHAR 또는 VARCHAR).
- 패키지 이름
- DB2 패키지 이름입니다(데이터 유형: SQL CHAR 또는 VARCHAR).
- 패키지 일관성 토큰
- DBRM 또는 DB2 패키지의 일관성 토큰입니다(데이터 유형: SQL CHAR 또는 BINARY).
- 기본 권한 부여 ID
- 명령문을 실행하는 데 사용된 기본 권한 부여 ID입니다(데이터 유형: SQL CHAR 또는 VARCHAR).
- 명령문 텍스트
- 전체 명령문 또는 해당 조각인 SQL문의 텍스트입니다(데이터 유형: SQL CHAR, VARCHAR 또는 BINARY).
이 텍스트는 다른 행에 있는 세그먼트로 분리될 수 있습니다. 고유 명령문 ID와 시퀀스 번호를 통해 세그먼트가 올바르게 병합되었는지 확인할 수 있습니다.
- 쿼리 모니터링 애플리케이션은 SYSIBM.SYSPACKSTMT 카탈로그 테이블의 STMT 열으로 정적 SQL문을 오프로드할 수 있습니다. 테이블은 SQL 텍스트를 2진 형식으로 저장합니다. 사용하고 있는 애플리케이션이 정적 SQL문을 이 테이블로 오프로드하는 경우 HEX() 함수를 사용하여 명령문을 2진 형식에서 16진 문자열로 변환해야 합니다. 메트릭이 수집되는 시간 간격에 관한 정보와 런타임 메트릭의 테이블에 이 열을 조합하도록 사용자가 정의한 뷰에서 변환을 실행하십시오.
- 고유 명령문 ID
- 명령문에 고유한 ID입니다. 테이블의 다른 행에 있는 명령문 텍스트의 조각을 식별하는 데 사용됩니다(데이터 유형: SQL CHAR, VARCHAR 또는 BINARY).
- 명령문 시퀀스 번호
- 해당 명령문의 기타 세그먼트와 함께 명령문 세그먼트를 병합하는 순서를 설명하는 번호입니다(데이터 유형: SQL INT 또는 SMALLINT).
- 간격 시작
- 런타임 메트릭이 수집된 간격의 시작입니다(데이터 유형: SQL TIMESTAMP).
- 간격 종료
- 런타임 메트릭이 수집된 간격의 종료입니다(데이터 유형: SQL TIMESTAMP).
- 섹션 번호
- SQL문이 있는 DB2 패키지의 섹션 번호입니다(데이터 유형: SQL INT 또는 SMALLINT).
- 명령문 번호
- DB2 패키지 내 명령문의 번호입니다(데이터 유형: SQL INT 또는 SMALLINT).
- 실행 계수
- SQL문이 실행된 횟수입니다(데이터 유형: SQL INT 또는 SMALLINT).
- CPU 시간 총계
- 실행 계수에 지정된 횟수만큼 명령문을 실행하는 데 필요한 CPU 시간입니다(데이터 유형: SQL
FLOAT 또는 DOUBLE).
- 경과 시간 총계
- 실행 계수에 지정된 횟수만큼 명령문을 실행하는 데 필요한 클래스 2 시간의 양입니다(데이터 유형: SQL
FLOAT 또는 DOUBLE).
- getpage 수
- 발행된 getpage 요청 수입니다(데이터 유형: SQL INT 또는 SMALLINT).
- 고유 메트릭 ID
- SQL문에 대해 수집된 런타임 메트릭에 고유한 ID입니다. 저장소의 SQL문이 참조하는 오브젝트를 나열하는 테이블에
런타임 메트릭 테이블을 결합하는 데 사용됩니다(데이터 유형: SQL CHAR, VARCHAR 또는 BINARY).
또한 SQL문이 참조하는 데이터베이스 오브젝트에 대한 정보가 포함된 컬럼을
지정할 수 있습니다(테이블에 이 정보가 포함된 경우).
- 종속 오브젝트 규정자
- 참조된 오브젝트의 스키마 또는 규정자입니다(데이터 유형: SQL
CHAR 또는 VARCHAR).
- 종속 오브젝트 이름
- 참조된 오브젝트의 이름입니다(데이터 유형: SQL CHAR 또는 VARCHAR).
- 종속 오브젝트 유형
- 참조된 오브젝트의 유형입니다(데이터 유형: SQL CHAR 또는 VARCHAR).
- 데이터베이스 이름
- 참조된 오브젝트가 저장된 데이터베이스의 이름입니다(데이터 유형: SQL CHAR 또는 VARCHAR).
- 테이블스페이스 이름
- 참조된 오브젝트가 저장된 테이블스페이스의 이름입니다(데이터 유형: SQL CHAR 또는 VARCHAR).
- 고유 메트릭 ID
- SQL문에 대해 수집된 런타임 메트릭에 고유한 ID입니다. 저장소의 SQL문이 참조하는 오브젝트를 나열하는 테이블에
런타임 메트릭 테이블을 결합하는 데 사용됩니다(데이터 유형: SQL CHAR, VARCHAR 또는 BINARY).
쿼리 모니터링 애플리케이션이 z/OS용
DB2 테이블로 오프로드한 데이터에 있는 SQL문에서 쿼리 워크로드 작성 예제
z/OS용
DB2 Query Monitor를 사용하고 VSAM 파일에서 z/OS용
DB2 테이블로 데이터를 오프로드한다고 가정하십시오. 그런 다음 이러한 테이블을 쿼리하여 다양한 데이터베이스 애플리케이션에서 SQL문의 성능에 대한 정보를 찾으려고 합니다. SQL문이 성능 임계값 밑으로 내려갈 경우, 목표는 해당 명령문을 조정하는 것입니다.
이 데이터 저장소에서 SQL문을 캡처하고 조정하려면 런타임 메트릭, SQL 텍스트 및 시간 간격에 대한 정보를 오프로드해야 합니다.
이 데이터의 값을 필터링할 수 있으므로 워크플로우 지원 프로그램은
필터링 기준을 충족시키는 SQL문 서브세트만 표시합니다. 이 기능을 통해 튜닝이 필요한 SQL문을 쉽게 찾을 수 있습니다.다음 세 개의 테이블로 데이터를 오프로드해야 합니다.
- CQMnnINTERVALS
- 이 테이블은 각 간격의 시작 및 종료 시간을 정의합니다.
- CQMnnSUMM_METRICS
- 이 테이블은 z/OS용
DB2 Query Monitor가 모든 SQL문에 대해 수집하는 런타임 메트릭을 포함합니다.
- CQMnnSUMM_TEXT
- 이 테이블은 SQL문 텍스트를 포함합니다.
주: 쿼리 모니터링 애플리케이션은 SYSIBM.SYSPACKSTMT 카탈로그 테이블의 STMT 컬럼으로 정적 SQL문 텍스트를
오프로드할 수 있습니다.
워크플로우 지원 프로그램을 사용하여 SQL문을 캡처하기 전에
이 세 개의 테이블을 조인하는 뷰를 작성해야 합니다. 예제는 다음과 같습니다.
CREATE VIEW QM_STMT_VIEW
(DB2_SUBSYSTEM, PLAN, COLLECTION, PROGRAM,
CONSISTENCY_TOKEN, AUTHID, METRICS_TOKEN, TEXT_TOKEN, SQLTEXT, SEQNO,
INTERVAL_START, INTERVAL_END, SECTION, STMT, SQL_CALLS, DB2_CPU,
DB2_ELAP, GETPAGES)
AS
SELECT A.DB2_SUBSYSTEM, A.PLAN, A.COLLECTION, A.PROGRAM,
A.CONSISTENCY_TOKEN, A.AUTHID, A.METRICS_TOKEN, A.TEXT_TOKEN,
B.SQLTEXT, 0, A.INTERVAL_START, CURRENT TIMESTAMP AS INTERVAL_END_TS,
A.SECTION, A.STMT, A.SQL_CALLS, A.DB2_CPU, A.DB2_ELAPSED, A.GETPAGES
FROM QMTOOLS.CQM23_SUMM_METRICS A,
QMTOOLS.CQM23_SUMM_TEXT B
WHERE
A.TEXT_TOKEN = B.TEXT_TOKEN
AND A.SMFID = B.SMFID
AND A.CQM_SUBSYSTEM = B.CQM_SUBSYSTEM
AND A.INTERVAL_NUMBER = B.INTERVAL_NUMBER
AND A.INTERVAL_START = B.INTERVAL_START
AND A.INTERVAL_NUMBER IN (
SELECT DISTINCT A.INTERVAL_NUMBER
FROM QMTOOLS.CQM23_INTERVALS A,
QMTOOLS.CQM23_SUMM_METRICS B
WHERE A.SMFID = B.SMFID
AND A.CQM_SUBSYSTEM = B.CQM_SUBSYSTEM
AND A.INTERVAL_NUMBER = B.INTERVAL_NUMBER
AND A.INTERVAL_START = B.INTERVAL_START);
쿼리 모니터링 애플리케이션이
SYSIBM.SYSPACKSTMT 카탈로그 테이블의 STMT 컬럼으로 정적 SQL문 텍스트를
오프로드하는 경우, 뷰는 이 컬럼을 CQMnnINTERVALS 및
CQMnnSUMM_METRICS 테이블과 조인해야 합니다. 또한 이 뷰는
HEX() 함수를 사용하여 각 명령문의 텍스트를 BINARY 형식에서 16진 문자열로 변환해야 합니다.
SQL문이 참조하는 데이터베이스 오브젝트에 대한 데이터도 오프로드할 수 있습니다. 해당 데이터를
SUMM_OBJECTS 테이블로 오프로드해야 합니다.
데이터가 오프로드되고 보기가 작성된 후
사용자 정의 SQL 저장소에서 쿼리 워크로드 작성의 예제에 나열된 단계를 따르십시오.