Hitachi

Hitachi Advanced Data Binder システム構築・運用ガイド


13.2.3 グローバル作業表を作成するSQL文の実行時間を短縮する方法

グローバル作業表を作成するSQL文を実行する場合,グローバル作業表用のグローバルバッファのページ数を増やすことで,SQL文の実行時間を短縮できることがあります。

グローバル作業表を作成するSQL文については,マニュアルHADB AP開発ガイドAPの性能向上に関する設計作業表が作成されるSQLを実行する際の考慮点SQLを実行した場合に作成される作業表についてを参照してください。

adbstatコマンドで出力される情報によって,チューニング方法が異なります。

まずは,グローバルバッファの統計情報を確認して,チューニングを行ってください。そのあとで,特定のSQL文の実行時間を短縮したい場合は,SQL文の統計情報を確認して,チューニングを行ってください。

〈この項の構成〉

(1) グローバルバッファの統計情報によるグローバル作業表を作成するSQL文の実行時間の短縮

手順

  1. グローバルバッファからのファイル書き込み回数を確認する

    adbstatコマンドを実行して出力されるグローバルバッファの統計情報のうち,まず,次に示す情報を確認してください。

    • DBbuff_name(グローバルバッファ名)

    DBbuff_nameADBWRKとなっているグローバルバッファについて,次に示す情報を確認してください。

    • DBbuff_page_write_cnt(グローバルバッファからのファイル書き込み回数)

    DBbuff_page_write_cntに出力された値が1以上の場合,グローバルバッファからファイルへの書き込みが発生しています。該当する場合は,手順2.に進んでください。

  2. HADBサーバを終了する

    adbstopコマンドを実行して,HADBサーバを終了してください。

  3. サーバ定義を変更する

    サーバ定義のadb_dbbuff_wrktbl_glb_blk_numオペランドの指定値を大きくしてください。

  4. HADBサーバを開始する

    adbstartコマンドを実行して,HADBサーバを開始してください。

  5. グローバル作業表を作成するSQL文を再実行する

    グローバル作業表を作成するSQL文を再実行したあとに,手順1.を実施して,DBbuff_page_write_cntに出力された値が減っているかどうかを確認してください。

  6. 手順1.~手順5.を繰り返す

    手順1.~手順5.を繰り返して,DBbuff_page_write_cntに出力された値が0になるまで調整すると,グローバル作業表を作成するSQL文の実行時間を短縮できることがあります。

メモ

サーバ定義のadb_dbbuff_wrktbl_glb_blk_numオペランドについては,「7.2.2 性能に関するオペランド(set形式)」のadb_dbbuff_wrktbl_glb_blk_numオペランドを参照してください。

(2) SQL文の統計情報によるグローバル作業表を作成するSQL文の実行時間の短縮

手順

  1. グローバルバッファからのファイル書き込み回数を確認する

    adbstatコマンドを実行して出力される「SQL文の統計情報」のうち,まず,次に示す情報を確認してください。

    • DBbuff_name(グローバルバッファ名)

    DBbuff_nameADBWRKとなっているグローバルバッファについて,次に示す情報を確認してください。

    • DBbuff_page_write_cnt(グローバルバッファからのファイル書き込み回数)

    • DBbuff_page_put_cnt(グローバルバッファへの書き込み回数)

  2. グローバルバッファからファイルへの書き込みが多発していないか確認する

    手順1.で確認したDBbuff_page_write_cntDBbuff_page_put_cntの関係が,次に示す計算式を満たしている場合,グローバルバッファからファイルへの書き込みが多発しているおそれがあります。

    計算式

    DBbuff_page_write_cntに出力された値DBbuff_page_put_cntに出力された値÷2

    計算式を満たしている場合,手順3.に進んでください。

  3. HADBサーバを終了する

    adbstopコマンドを実行して,HADBサーバを終了してください。

  4. サーバ定義を変更する

    サーバ定義のadb_dbbuff_wrktbl_glb_blk_numオペランドの指定値を大きくしてください。

  5. HADBサーバを開始する

    adbstartコマンドを実行して,HADBサーバを開始してください。

  6. グローバル作業表を作成するSQL文を再実行する

    グローバル作業表を作成するSQL文を再実行したあとに,手順1.を実施して,DBbuff_page_write_cntに出力された値が,計算式を満たさないことを確認してください。

  7. 手順1.~手順6.を繰り返す

    手順1.~手順6.を繰り返して,DBbuff_page_write_cntに出力された値が計算式を満たさなくなるまで調整すると,グローバル作業表を作成するSQL文の実行時間を短縮できることがあります。

メモ

サーバ定義のadb_dbbuff_wrktbl_glb_blk_numオペランドについては,「7.2.2 性能に関するオペランド(set形式)」のadb_dbbuff_wrktbl_glb_blk_numオペランドを参照してください。