OPT_STAT_ADVICE 스토어드 프로시저를 사용하여 통계 수집

z/OS용 DB2 11 새 기능 모드 서브시스템에서 테이블에 대한 통계 콜렉션을 위한 권장사항을 가져오려면 이 스토어드 프로시저를 사용하십시오. 스토어드 프로시저는 SYSIBM.DSN_STAT_FEEDBACK 카탈로그 테이블을 권장사항으로 채우거나 RUNSTATS 프로파일을 업데이트할 수 있습니다.

시작하기 전에

이 태스크 정보

OPT_STAT_ADVICE 스토어드 프로시저를 사용하여 통계를 수집하려면 전제조건이 충족되었는지 확인하고 WLM Java 환경을 설정하며, 스토어드 프로시저가 포함된 .jar 파일을 업로드하고 DBRM을 업로드한 후 샘플 JCL 작업을 사용자 정의하고 실행하십시오.

프로시저

  1. 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)
  2. 로드 모듈 jar 파일(aocstatssp.jar)을 업로드하십시오.
    1. 워크스테이션에서 명령 창을 여십시오.
    2. IBM Data Studio 클라이언트 설치 디렉토리의 \QueryTunerServerConfig\all_features\ZOS\SCA 폴더로 변경하십시오.
    3. 서브시스템에 FTP로 연결하십시오.
    4. WLM CLASSPATH 변수가 가리키는 디렉토리로 변경하십시오.
    5. 2진 모드로 변경하십시오.
    6. JAR 파일을 디렉토리에 배치하십시오.
  3. DBRM AOC5OSCM을 서브시스템에 업로드하십시오. 이 DBRM은 IBM Data Studio 클라이언트 설치 디렉토리(\QueryTunerServerConfig\all_features\ZOS\V11)에 있습니다.
  4. AOCDDL11 샘플 JCL 작업을 사용자 정의하고 실행하십시오. 이 샘플 작업은 IBM Data Studio 클라이언트 설치 디렉토리(\QueryTunerServerConfig\all_features\ZOS\V11)에 있습니다.
    1. AOCBIND 단계를 사용자 정의하십시오. 이 단계는 InfoSphere Optim Query Workload Tuner가 사용하는 패키지를 바인드합니다.
    2. AOCSP 단계를 사용자 정의하십시오. 이 단계는 SYSPROC.OPT_STAT_ADVICE 스토어드 프로시저를 작성합니다. SYSPROC.OPT_RUNSQLSYSPROC.OPT_EXECUTE_TASK 스토어드 프로시저를 작성하는 라인을 주석 처리할 수 있습니다.
  5. 권장사항을 원하는 테이블을 나열하는 테이블을 작성하여 채우십시오. 이 테이블은 선언된 전역 임시 테이블(DGTT) 또는 일반 테이블입니다. 테이블은 다음 두 개의 열을 포함해야 합니다.
    표 1. 권장사항을 원하는 테이블을 나열하는 테이블의 열

    데이터 유형

    설명

    CREATOR VARCHAR(128) 권장사항을 원하는 테이블의 스키마입니다.
    NAME VARCHAR(128) 해당 테이블의 이름입니다.
  6. 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를 사용합니다.

  1. 통계 콜렉션에 대한 권장사항을 생성할 테이블 목록을 포함하는 DGTT를 작성하십시오.
    DECLARE GLOBAL TEMPORARY TABLE SESSION.STAT_COLL_TABLE (
            CREATOR VARCHAR(128),
            NAME VARCHAR(128)
    ) ON COMMIT PRESERVE ROWS;
  2. DGTT를 데이터로 채우십시오.
    INSERT INTO SESSION.STAT_COLL_TABLE (CREATOR, NAME) VALUES (…...);
  3. 스토어드 프로시저를 호출하십시오.
    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 지원 센터에 문의하고 지원 담당자가 제공하는 지시사항에 따라 파일을 전송하십시오.

피드백