OPT_STAT_ADVICE ストアード・プロシージャーの使用による統計の収集

このストアード・プロシージャーを呼び出すことで、DB2 11 for z/OS 新機能モード・サブシステム内の表に関する統計の収集についての推奨情報を取得します。このストアード・プロシージャーは、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. バイナリー・モードに変更します。
    6. ディレクトリー内に JAR ファイルを配置します。
  3. DBRM AOC5OSCM をサブシステムにアップロードします。この DBRM は、¥QueryTunerServerConfig¥all_features¥ZOS¥V11 にある IBM Data Studio クライアントのインストール・ディレクトリーにあります。
  4. AOCDDL11 サンプル JCL ジョブをカスタマイズして実行します。このサンプル・ジョブは、¥QueryTunerServerConfig¥all_features¥ZOS¥V11 にある IBM Data Studio クライアントのインストール・ディレクトリーにあります。
    1. ステップ AOCBIND をカスタマイズします。このステップは、InfoSphere Optim Query Workload Tuner で使用されるパッケージをバインドします。
    2. ステップ AOCSP をカスタマイズします。このステップは、SYSPROC.OPT_STAT_ADVICE ストアード・プロシージャーを作成します。SYSPROC.OPT_RUNSQL および SYSPROC.OPT_EXECUTE_TASK ストアード・プロシージャーを作成する行をコメント化することができます。
  5. 推奨情報を必要とする表をリストする表を作成し、データを取り込みます。 この表は、宣言済みグローバル一時表 (DGTT) または正規表とすることができます。これには以下の 2 つの列が必要です。
    表 1. 推奨情報を必要とする表をリストする表の列

    データ型

    説明

    CREATOR VARCHAR(128) 推奨情報が必要な表のスキーマ。
    NAME VARCHAR(128) 対応する表の名前。
  6. CALL ステートメントによって、以下のパラメーターの値が提供され、受け入れられるようにします。
    表 2. OPT_STAT_ADVICE ストアード・プロシージャーのパラメーター

    モード

    パラメーター

    データ型

    NULL 可能かどうか (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 サポートに連絡し、サポート担当者の指示に従ってファイルを送信してください。

Feedback