z/OS용 DB2 11 새 기능 모드 서브시스템에서 테이블에 대한 통계 콜렉션을 위한 권장사항을 가져오려면
이 스토어드 프로시저를 사용하십시오. 스토어드 프로시저는 SYSIBM.DSN_STAT_FEEDBACK 카탈로그 테이블을 권장사항으로 채우거나
RUNSTATS 프로파일을 업데이트할 수 있습니다.
시작하기 전에
- ADMIN_COMMAND_DB2 스토어드 프로시저가 설치되어 있고 OPT_STAT_ADVICE 프로시저를 호출할 ID에
EXECUTE 권한이 제공되어 있는지 확인하십시오.
- DSNUTILU 스토어드 프로시저가 설치되어 있고 OPT_STAT_ADVICE 프로시저를 호출할 ID에
EXECUTE 권한이 제공되어 있는지 확인하십시오.
- 전체 튜닝 기능 세트가 활성화되어 있는지 확인하십시오. 이 체크리스트의 8단계에서는
이 활성화를 수행하는 방법을 설명합니다.
- 워크스테이션에 IBM Data Studio 클라이언트, 버전 4.1.1이 설치되어 있는지 확인하십시오. 아래 프로시저의 일부로 업로드할 파일은
클라이언트 설치 디렉토리에 있습니다.
이 태스크 정보
OPT_STAT_ADVICE 스토어드 프로시저를 사용하여 통계를 수집하려면
전제조건이 충족되었는지 확인하고 WLM Java 환경을 설정하며, 스토어드 프로시저가 포함된 .jar 파일을 업로드하고
DBRM을 업로드한 후 샘플 JCL 작업을 사용자 정의하고 실행하십시오.
프로시저
- WLM Java 환경을 설정하고 스토어드 프로시저를 업로드할 위치를 가리키는 CLASSPATH 값을 지정하십시오. 스토어드 프로시저는 Java 1.5 이상에서 실행될 수 있습니다.
다음은 WLM Java 환경 설정 예제입니다.
ENVAR("CLASSPATH=/u/admf001/aocstatssp.jar",
"TZ=PST08",
"JAVA_HOME=/usr/lpp/java160/J6.0",
"WORK_DIR=/u/oeusr05/JavaSP",
"JCC_HOME=/usr/lpp/db2/devbase/jdbc",
"DB2_BASE=/usr/lpp/db2/devbase/base"),
MSGFILE(JSPDEBUG),
XPLINK(ON)
- 로드 모듈 jar 파일(aocstatssp.jar)을 업로드하십시오.
- 워크스테이션에서 명령 창을 여십시오.
- IBM Data Studio 클라이언트 설치 디렉토리의 \QueryTunerServerConfig\all_features\ZOS\SCA 폴더로 변경하십시오.
- 서브시스템에 FTP로 연결하십시오.
- WLM CLASSPATH 변수가 가리키는 디렉토리로 변경하십시오.
- 2진 모드로 변경하십시오.
- JAR 파일을 디렉토리에 배치하십시오.
- DBRM AOC5OSCM을 서브시스템에 업로드하십시오. 이 DBRM은
IBM Data Studio 클라이언트 설치 디렉토리(\QueryTunerServerConfig\all_features\ZOS\V11)에 있습니다.
- AOCDDL11 샘플 JCL 작업을 사용자 정의하고 실행하십시오. 이 샘플 작업은
IBM Data Studio 클라이언트 설치 디렉토리(\QueryTunerServerConfig\all_features\ZOS\V11)에 있습니다.
- AOCBIND 단계를 사용자 정의하십시오. 이 단계는 InfoSphere Optim Query Workload Tuner가 사용하는 패키지를 바인드합니다.
- AOCSP 단계를 사용자 정의하십시오. 이 단계는
SYSPROC.OPT_STAT_ADVICE 스토어드 프로시저를 작성합니다. SYSPROC.OPT_RUNSQL 및
SYSPROC.OPT_EXECUTE_TASK 스토어드 프로시저를 작성하는 라인을 주석 처리할 수 있습니다.
- 권장사항을 원하는 테이블을 나열하는 테이블을 작성하여 채우십시오. 이 테이블은 선언된 전역 임시 테이블(DGTT) 또는 일반 테이블입니다. 테이블은 다음 두 개의 열을 포함해야 합니다.
표 1. 권장사항을 원하는 테이블을 나열하는 테이블의 열열
|
데이터 유형
|
설명
|
| CREATOR |
VARCHAR(128) |
권장사항을 원하는 테이블의 스키마입니다. |
| NAME |
VARCHAR(128) |
해당 테이블의 이름입니다. |
- CALL문이 제공되고 다음 매개변수 값을 허용하는지 확인하십시오.
표 2. OPT_STAT_ADVICE 스토어드 프로시저의 매개변수모드
|
매개변수
|
데이터 유형
|
널 입력 가능 여부(Y/N)
|
설명
|
| IN |
TABLECREATOR |
VARCHAR(128) |
Y |
통계 콜렉션에 대한 권장사항을 원하는 테이블을 나열하는 테이블의 스키마입니다. 이 값이 NULL인 경우,
스토어드 프로시저는 전체 연결된 서브시스템에서 모든 테이블, 해당 인덱스, 열에 대한
권장사항을 가져옵니다.
|
| IN |
TABLENAME |
VARCHAR(128) |
Y |
통계 콜렉션에 대한 권장사항을 원하는 테이블을 나열하는 테이블입니다. TABLECREATOR가 NULL이면 이 매개변수는 또한 NULL이어야 합니다.
TABLECREATOR는 NULL이 아니지만 TABLENAME이
NULL인 경우, 스토어드 프로시저는 OUTPUT_MESSAGE 매개변수에 오류 메시지를 리턴합니다.
|
| IN |
OUTPUT_METHOD |
INTEGER |
N |
통계 콜렉션 권장사항 출력 메소드입니다. 가능한 값은 다음과 같습니다.
1:
SYSIBM.DSN_STAT_FEEDBACK 카탈로그 테이블을 인메모리 통계로 채웁니다.
2: RUNSTATS 프로파일을 직접
업데이트합니다.
DSNACCOX 스토어드 프로시저는 RUNSTATS 프로파일 변경사항을 발견한 후
사용자가 설정할 수 있는 스케줄에 따라 통계 콜렉션을 시작합니다.
OPT_STAT_ADVICE 스토어드 프로시저를
DSNACCOX와 함께 사용하려면 OPT_STAT_ADVICE를 호출할 때 OUTPUT_METHOD 입력 매개변수 값으로
"2"를 지정하십시오. 이 스토어드 프로시저가 RUNSTATS 프로파일을 업데이트한 후
DSNACCOX는 업데이트를 발견하고 스케줄에 따라 통계 콜렉션을 시작합니다.
|
| IN |
RESERVED |
INTEGER |
Y |
예약됨 |
| OUT |
RETURN_CODE |
INTEGER |
|
스토어드 프로시저 리턴 값입니다. 가능한 값은 다음과 같습니다.
0: 성공적으로 완료되었습니다.
4: 완료되었지만 경고가 표시됩니다. 경고 메시지는 OUTPUT_MESSAGE
매개변수에 있습니다.
8: 오류로 인해 실패했습니다. 오류 메시지는 OUTPUT_MESSAGE 매개변수에 있습니다.
|
| OUT |
RESERVED |
BLOB(64k) |
|
예약됨
|
| OUT |
OUTPUT_MESSAGE |
VARCHAR(4096) |
|
스토어드 프로시저가 리턴한 메시지입니다. 리턴 코드가 0이면 값은 NULL입니다.
그렇지 않으면, 매개변수는 스토어드 프로시저가 생성한 오류 또는 경고 메시지를 나열합니다.
|
예
이 스토어드 프로시저 호출 예제에서는 DGTT를 사용합니다.
- 통계 콜렉션에 대한 권장사항을 생성할 테이블 목록을 포함하는 DGTT를 작성하십시오.
DECLARE GLOBAL TEMPORARY TABLE SESSION.STAT_COLL_TABLE (
CREATOR VARCHAR(128),
NAME VARCHAR(128)
) ON COMMIT PRESERVE ROWS;
- DGTT를 데이터로 채우십시오.
INSERT INTO SESSION.STAT_COLL_TABLE (CREATOR, NAME) VALUES (…...);
- 스토어드 프로시저를 호출하십시오.
CALL DB2OE.OPT_STAT_ADVICE (
'SESSION',
'STAT_COLL_TABLE',
'2',
?,
?,
?
);
아래 샘플 JCL은 DSNTEP2로 이 인터페이스를 호출하는 방법을 표시합니다.
//STEP01 EXEC TSOBATCH,DB2LEV=DB2A
//SYSTSIN DD *
DSN S(VA1A) R(1) T(1)
RUN PROGRAM(DSNTEP2) PLAN(DSNTEP2) PARM('NOMIXED')
END
//SYSIN DD *
DECLARE GLOBAL TEMPORARY TABLE SESSION.STAT_COLL_TABLE (
CREATOR VARCHAR(128),
NAME VARCHAR(128)
) ON COMMIT PRESERVE ROWS;
INSERT INTO SESSION.STAT_COLL_TABLE (CREATOR, NAME) VALUES (…...);
CALL DB2OE.OPT_STAT_ADVICE (
'SESSION', 'STAT_COLL_TABLE',
'2',
?,
?,
?
);
다음에 수행할 작업
스토어드 프로시저가 오류를 보고하는 경우, JavaOut 및 JavaErr 매개변수의 디렉토리를
정의하십시오. 권한 부여 ID에 해당 디렉토리를 읽고 쓸 수 있는 권한이 있는지 확인하십시오.
그런 다음, 추적을 시작하십시오. 스토어드 프로시저를 다시 호출하십시오. 오류가 발생하면
JavaOut 및 JavaErr 디렉토리에 생성된 파일을 수집하십시오. IBM 지원 센터에 문의하고
지원 담당자가 제공하는 지시사항에 따라 파일을 전송하십시오.