データベース・サービス成果物デプロイ後のパフォーマンスの向上

データ・サービス成果物のデプロイメント後、DB2® のアクセス・プランを低下させるいくつかの索引が作成されています。デプロイメント後、Data Services コンポーネントのサーバーを始動する前に、良好なアクセス・プランを作成するため、即時にいくつかの手順を実行する必要があります。

問題のあるアクセス・プランの 1 つの症状は、ターゲット・ライフ・サイクル・コンポーネントの作業を実行する非常に長いクエリーが原因で、ランタイム・データベースとヒストリー・データベースにデータが現れなくなることです。通常、この発生は DB2 プロセスによる CPU 割り振りの増加とも関連しています。

この問題を解決するには、以下の手順をすべて実行します。

ランタイム・データベースの場合

  1. 任意のクエリー・ツールを使用してランタイム・データベースに接続します。
    1. デプロイメント・ユーザーでローカルに実行している場合

      db2 connect to <Runtime_Database>

    2. リモート側で実行している場合

      db2 connect to <Runtime_Database> user <User_Name>

  2. 次のテキストを含む createCCDindexesDrops.sql という名前のファイルを作成します。

    SELECT 'DROP INDEX ' || CREATOR || '.' || NAME || ';'

    FROM

    SYSIBM.SYSINDEXES, WBIRMADM.RMMETADATA RM

    WHERE

    REPLACE(LTRIM(TBCREATOR) || '.' || LTRIM(TBNAME),' ','') = RM.TGT_RM_APP_STG_TAB_NAME

    AND CREATOR='APP'

    AND NAME LIKE 'CCD%'

    ;

  3. 作成した SQL ステートメントを実行し、出力をファイルにリダイレクトします。

    db2 -txf createCCDindexesDrops.sql > dropRuntimeCCDIndexes.sql

  4. ファイルを調べます。次のようなステートメントがあります。

    DROP INDEX APP .CCDIX_CCD_45;

    DROP INDEX APP .CCDIX_CCD_6;

    DROP INDEX APP .CCDIX_CCD_7;

  5. 生成されたファイルを次のように実行します。

    db2 -tvf dropRuntimeCCDIndexes

  6. createrebindDSRuntimeStoredProcedures.sql という名前のファイルを作成し、次の内容を追加します。

    SELECT ' CALL SYSPROC.REBIND_ROUTINE_PACKAGE(''P'', ''' || TGT_RM_SPETL_NAME || ''', ''ANY'');'

    FROM

    WBIRMADM.RMMETADATA

    WHERE

    Service_Name='State to Runtime';

    SELECT ' CALL SYSPROC.REBIND_ROUTINE_PACKAGE(''P'', ''' || TGT_RM_APP_PRUNE_SP_NAME || ''', ''ANY'');'

    FROM

    WBIRMADM.RMMETADATA

    WHERE

    Service_Name='State to Runtime';

  7. ファイルを実行します。

    db2 -txf createrebindDSRuntimeStoredProcedures.sql > rebindDSRuntimeStoredProcedures.sql

  8. 生成されたファイルを調べます。次の内容を確認できます。

    CALL SYSPROC.REBIND_ROUTINE_PACKAGE('P', 'WBIRMADM.WBIRMSP_10', 'ANY');

    CALL SYSPROC.REBIND_ROUTINE_PACKAGE('P', 'WBIRMADM.WBIRMSP_14', 'ANY');

    CALL SYSPROC.REBIND_ROUTINE_PACKAGE('P', 'WBIRMADM.WBIRMSP_47', 'ANY');

  9. 索引が削除されたら、生成されたファイルを実行して、 DS ストアード・プロシージャーを再バインドします。

    db2 -tvf rebindDSRuntimeStoredProcedures.sql

ヒストリー・データベースの場合

  1. 任意のクエリー・ツールを使用してランタイム・データベースに接続します。
    1. デプロイメント・ユーザーでローカルに実行している場合

      db2 connect to <Historical_Database>

    2. リモート側で実行している場合

      db2 connect to <Historical_Database> user <User_Name>

  2. 次のテキストを含む createCCDindexesDrops.sql という名前のファイルを作成します。ランタイム・データベース用に作成したファイルを再利用できます。

    SELECT 'DROP INDEX ' || CREATOR || '.' || NAME || ';'

    FROM

    SYSIBM.SYSINDEXES, WBIRMADM.RMMETADATA RM

    WHERE

    REPLACE(LTRIM(TBCREATOR) || '.' || LTRIM(TBNAME),' ','') = RM.TGT_RM_APP_STG_TAB_NAME

    AND CREATOR='APP'

    AND NAME LIKE 'CCD%'

    ;

  3. 作成した SQL ステートメントを実行し、出力をファイルにリダイレクトします。

    db2 -txf createCCDindexesDrops.sql > dropRuntimeCCDIndexes.sql

  4. ファイルを調べます。次のようなステートメントがあります。

    DROP INDEX APP .CCDIX_CCD_45;

    DROP INDEX APP .CCDIX_CCD_6;

    DROP INDEX APP .CCDIX_CCD_7;

  5. 生成されたファイルを次のように実行します。

    db2 -tvf dropRuntimeCCDIndexes

  6. createrebindDSRuntimeStoredProcedures.sql という名前のファイルを作成し、次の内容を追加します。

    SELECT ' CALL SYSPROC.REBIND_ROUTINE_PACKAGE(''P'', ''' || TGT_RM_SPETL_NAME || ''', ''ANY'');'

    FROM

    WBIRMADM.RMMETADATA

    WHERE

    Service_Name='Runtime to Historical';

    SELECT ' CALL SYSPROC.REBIND_ROUTINE_PACKAGE(''P'', ''' || TGT_RM_APP_PRUNE_SP_NAME || ''', ''ANY'');'

    FROM

    WBIRMADM.RMMETADATA

    WHERE

    Service_Name='Runtime to Historical';

  7. ファイルを実行します。

    db2 -txf createrebindDSRuntimeStoredProcedures.sql > rebindDSHistoryStoredProcedures.sql

  8. 生成されたファイルを調べます。次の内容を確認できます。

    CALL SYSPROC.REBIND_ROUTINE_PACKAGE('P', 'WBIRMADM.WBIRMSP_10', 'ANY');

    CALL SYSPROC.REBIND_ROUTINE_PACKAGE('P', 'WBIRMADM.WBIRMSP_14', 'ANY');

    CALL SYSPROC.REBIND_ROUTINE_PACKAGE('P', 'WBIRMADM.WBIRMSP_47', 'ANY');

  9. 索引が削除されたら、生成されたファイルを実行して、 DS ストアード・プロシージャーを再バインドします。

    db2 -tvf rebindDSHistoryStoredProcedures.sql


Copyright IBM Corporation 2005, 2006. All Rights Reserved.