8.9.1 SQL実行時間警告出力機能とは
SQLの実行後にHiRDBがSQLの実行時間を調べます。その結果,SQLの実行時間が設定した警告時間以上であった場合,そのSQLに対して次に示す警告情報を出力します。これをSQL実行時間警告出力機能といいます。
- 〈この項の構成〉
(1) SQL実行時間警告出力機能の使用目的
SQL実行時間警告出力機能は次に示す目的などに使用します。
-
データ量の増加などでHiRDBのサーバプロセスからの応答時間が長くなるUAPについて,PDCWAITTIMEオーバが発生する可能性があることを事前に検知する
-
SQL応答待ち時間が一定時間以上のSQLに関する情報を取得してチューニングの資料にする
(2) 警告時間の設定方法
警告情報を出力する時間を警告時間と呼びます。SQL実行時間が警告時間以上になった場合,警告情報を出力します。警告時間は,次の値で決定されます。
-
PDCWAITTIMEに対する比率
-
警告をファイルに出力する契機となる時間:出力の契機となる時間を短い時間(ミリ秒単位など)で厳密に指定できます。
(3) SQL実行時間警告出力機能の対象となるSQL
CONNECT以外のSQLをSQL実行時間警告出力機能の対象とします。
(4) 警告情報が出力されたときの対処方法
警告情報が出力されてPDCWAITTIMEオーバになる可能性がある場合は,出力された情報を参考にして次に示す対処をしてください。
-
排他競合が発生しているかを見直す
-
ネットワーク障害が発生していないかを見直す
-
SQLをチューニングする
-
PDCWAITTIMEオペランドの指定値を大きくする
-
データ件数の増加によってSQLの実行時間が長くなっていないかを確認する
(5) 警告情報の出力条件
SQL実行時間警告出力機能を使用する場合,SQLの実行時間が設定した時間以上のとき以外にも警告情報を出力します。また,SQL実行時間警告出力機能を使用しない場合でも警告情報を出力(メッセージだけ出力)するときがあります。SQL実行時間警告出力機能の警告情報の出力条件を次の表に示します。
条件 |
警告情報の出力可否 |
||
---|---|---|---|
SQL実行時間 警告情報 ファイル |
KFPA20009-W メッセージ |
||
SQL実行時間警告出力機能を使用する場合 |
SQLの実行時間が設定した時間以上である |
○ |
○ |
PDCWAITTIMEオーバによってサーバプロセスが強制終了された |
△ |
△ |
|
そのほかの要因によってサーバプロセスが強制終了された |
△ |
△ |
|
SQL実行時間警告出力機能を使用しない場合 |
SQLの実行時間が設定した時間以上である |
× |
× |
PDCWAITTIMEオーバによってサーバプロセスが強制終了された |
× |
△ |
|
そのほかの要因によってサーバプロセスが強制終了された |
× |
△ |
- (凡例)
-
○:出力します。
- △:出力しますが,一部の情報を出力しません。
-
また,強制終了のタイミングによっては,SQL実行時間警告情報ファイル又はKFPA20009-Wメッセージを出力しません。
なお,SQL実行時間警告情報ファイル及びKFPA20009-Wメッセージの再出力をpd_dump_suppress_watch_timeオペランドで抑止できます。
×:出力しません。
- 注
-
SQLの実行時間がPDCWAITTIMEオペランドの値を超えた場合は,SQL実行時間警告出力機能の使用に関係なくサーバプロセスを強制終了します。
(6) PDCWAITTIMEとSQL実行時間警告出力機能の関係
PDCWAITTIMEとSQL実行時間警告出力機能の関係を次の図に示します。
- 〔説明〕
-
-
クライアントからサーバに要求を受け渡したときから,要求に対する実行結果を返すまでをSQL実行時間の計測範囲としています。
-
SQLの実行結果をクライアントに返すときに,SQLの実行時間をHiRDBが調べます。SQLの実行時間が設定した警告時間以上の場合は警告情報を出力します。
-