Hitachi

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


14.2.5 テーブルスキャンを実行するSQL文の実行時間を短縮する方法

adbbuffオペランドの-vオプションを指定した場合に,-vオプションの指定値を見直すことで,テーブルスキャンを実行するSQL文の実行時間を短縮できることがあります。

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

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

〈この項の構成〉

(1) グローバルバッファの統計情報によるテーブルスキャンを実行するSQL文の実行時間の短縮

手順

  1. テーブルスキャンバッファでバッファ不足が発生した回数,およびテーブルスキャンバッファのページヒット率を確認する

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

    • DBbuff_tblscan_failed_cnt(テーブルスキャンバッファでバッファ不足が発生した回数)

    • DBbuff_tblscan_hit_rate(テーブルスキャンバッファのページヒット率)

    DBbuff_tblscan_failed_cntに出力された値が1以上の場合で,かつDBbuff_tblscan_hit_rateに出力された値が低い場合,テーブルスキャンバッファの面数が不足しています。そのため,テーブルスキャン実行時にグローバルバッファでの読み込みが発生しています。該当する場合は,手順2.に進んでください。

  2. HADBサーバを終了する

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

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

    サーバ定義のadbbuffオペランドの-vオプションの指定値に,サーバ定義のadb_sys_rthd_numオペランドの指定値分を加算してください。

  4. HADBサーバを開始する

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

  5. テーブルスキャンを実行するSQL文を再実行する

    テーブルスキャンを実行するSQL文を再実行したあとに,手順1.を実施して,DBbuff_tblscan_failed_cntに出力された値が減っているかどうかを確認してください。また,DBbuff_tblscan_hit_rateに出力された値が増えているかどうかを確認してください。

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

    手順1.~手順5.を繰り返して,DBbuff_tblscan_failed_cntに出力された値が0に近い値になるまで調整すると,DBbuff_tblscan_hit_rateに出力された値が増えてテーブルスキャンバッファのページヒット率が改善されます。そのため,テーブルスキャンを実行するSQL文の実行時間を短縮できる場合があります。

メモ

サーバ定義のadbbuffオペランドについては,「7.2.17 グローバルバッファに関するオペランドおよびオプション(コマンド形式)」のadbbuffオペランドを参照してください。

(2) SQL文の統計情報によるテーブルスキャンを実行するSQL文の実行時間の短縮

手順

  1. テーブルスキャンバッファでバッファ不足が発生した回数を確認する

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

    • DBbuff_tblscan_failed_cnt(テーブルスキャンバッファでバッファ不足が発生した回数)

    • DBbuff_tblscan_insufficient_buff_num(テーブルスキャンバッファの不足バッファ面数)

    DBbuff_tblscan_failed_cntに出力された値が1以上の場合,テーブルスキャンバッファの面数が不足しています。そのため,テーブルスキャン実行時にグローバルバッファでの読み込みが発生しています。該当する場合は,手順2.に進んでください。

  2. HADBサーバを終了する

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

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

    サーバ定義のadbbuffオペランドの-vオプションの指定値に,DBbuff_tblscan_insufficient_buff_numに出力された値分を加算してください。

  4. HADBサーバを開始する

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

  5. テーブルスキャンを実行するSQL文を再実行する

    テーブルスキャンを実行するSQL文の実行時間を短縮できる場合があります。

メモ

サーバ定義のadbbuffオペランドについては,「7.2.17 グローバルバッファに関するオペランドおよびオプション(コマンド形式)」のadbbuffオペランドを参照してください。