Hitachi

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


13.1.6 SQL文の処理時間の短縮

ここでは,サーバ定義およびクライアント定義のadb_sql_exe_max_rthd_numオペランドに指定した最大SQL処理リアルスレッド数の見直しによる処理性能の向上について説明します。

指定した最大SQL処理リアルスレッド数が少ない場合,SQL文の実行時に使用される処理リアルスレッドの数が少なくなるため,SQL文の処理に時間が掛かるおそれがあります。指定した最大SQL処理リアルスレッド数が適切かどうかを確認してください。

〈この項の構成〉

(1) SELECT文の処理時間を短縮する方法

SELECT文の処理時間を短縮する手順を次に示します。

手順

  1. SELECT文の実行時間を確認する

    adbstatコマンドを実行して出力される「コネクションの稼働情報」のうち,次に示す情報を確認してください。

    • SELECT_total_timeSELECT文の実行時間)

  2. adb_sql_exe_max_rthd_numオペランドの指定値を見直す

    手順1.で確認したSELECT_total_timeに出力された値が大きい場合,SQL文の処理に時間が掛かっているおそれがあります。この場合,サーバ定義およびクライアント定義のadb_sql_exe_max_rthd_numオペランドの指定値を大きくすることで,処理性能が向上することがあります。

    重要
    • クライアント定義のadb_sql_exe_max_rthd_numオペランドと,サーバ定義のadb_sql_exe_max_rthd_numオペランドの両方の指定値を確認してください。クライアント定義の指定値だけを大きくした結果,クライアント定義の指定値がサーバ定義の指定値を超えた場合,サーバ定義の指定値が適用されます(変更後のクライアント定義の指定値が適用されません)。該当する場合は,サーバ定義とクライアント定義の両方のadb_sql_exe_max_rthd_numオペランドの指定値を大きくしてください。

    • adb_sql_exe_max_rthd_numオペランドの指定値を大きくした場合は,サーバ定義のadb_sys_rthd_numオペランドの指定値も大きくしてください。adb_sql_exe_max_rthd_numオペランドの指定値だけを大きくすると,SQL文の実行待ち状態が発生するおそれがあります。

    • adb_sql_exe_max_rthd_numオペランドおよびadb_sys_rthd_numオペランドの指定値を変更した場合,必ずHADBサーバのメモリ所要量を再見積もりしてください。HADBサーバのメモリ所要量の見積もりについては,「6.3 HADBサーバのメモリ所要量の見積もり」を参照してください。

  3. HADBサーバを終了する

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

  4. サーバ定義およびクライアント定義を変更する

    次のオペランドの指定値を大きくしてください。

    • サーバ定義およびクライアント定義のadb_sql_exe_max_rthd_numオペランド

    • サーバ定義のadb_sys_rthd_numオペランド

  5. HADBサーバを開始する

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

メモ

(2) 定義系SQLと操作系SQLの処理時間を短縮する方法

定義系SQL,および操作系SQLの処理時間を短縮する方法について説明します。

対象の定義系SQL,および操作系SQLを次に示します。

定義系SQL
  • ALTER TABLE文(アーカイブマルチチャンク表をレギュラーマルチチャンク表に変更する場合)

  • DROP TABLE

  • DROP INDEX

  • DROP USER

  • DROP SCHEMA

  • REVOKE文(スキーマ操作権限の取り消し)

操作系SQL
  • PURGE CHUNK

  • TRUNCATE TABLE

定義系SQL,および操作系SQLの処理時間を短縮する手順を次に示します。

手順

  1. DBエリアファイル数を確認する

    adbdbstatusコマンドを実行して出力される「DBエリアのサマリ情報」のうち,次に示す情報を確認してください。

    • Number_of_files(DBエリアファイル数)

    なお,確認するDBエリアは,SQL文の対象となる表およびインデクスが格納されているDBエリアになります。そのDBエリアを構成するDBエリアファイル数のうち,最も大きい数を確認してください。

  2. adb_sql_exe_max_rthd_numオペランドの指定値を見直す

    手順1.で確認したNumber_of_filesに出力された各DBエリアのDBエリアファイル数のうち,最も大きいDBエリアファイル数と,adb_sql_exe_max_rthd_numオペランドの指定値を比較してください。DBエリアファイル数の方が大きい場合は,SQL文の処理に時間が掛かっているおそれがあります。この場合,adb_sql_exe_max_rthd_numオペランドの指定値を大きくして,DBエリアファイル数と同じ値にしてください。処理性能が向上することがあります。

    重要
    • クライアント定義のadb_sql_exe_max_rthd_numオペランドと,サーバ定義のadb_sql_exe_max_rthd_numオペランドの両方の指定値を確認してください。クライアント定義の指定値だけを大きくした結果,クライアント定義の指定値がサーバ定義の指定値を超えた場合,サーバ定義の指定値が適用されます(変更後のクライアント定義の指定値が適用されません)。該当する場合は,サーバ定義とクライアント定義の両方のadb_sql_exe_max_rthd_numオペランドの指定値を大きくしてください。

    • adb_sql_exe_max_rthd_numオペランドの指定値を大きくした場合,SQL文の実行待ち状態が発生するおそれがあるため,あわせてサーバ定義のadb_sys_rthd_numオペランドの指定値も大きくしてください。

    • adb_sql_exe_max_rthd_numオペランドおよびadb_sys_rthd_numオペランドの指定値を変更した場合,必ずHADBサーバのメモリ所要量を再見積もりしてください。HADBサーバのメモリ所要量の見積もりについては,「6.3 HADBサーバのメモリ所要量の見積もり」を参照してください。

  3. HADBサーバを終了する

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

  4. サーバ定義およびクライアント定義を変更する

    次のオペランドの指定値を大きくしてください。

    • サーバ定義およびクライアント定義のadb_sql_exe_max_rthd_numオペランド

    • サーバ定義のadb_sys_rthd_numオペランド

  5. HADBサーバを開始する

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

メモ