SUMMARYオプションを指定した結果、DBQLは以下のような固有の動作を行ないます。
- 要約された問合わせに関しては、DBQLogTblにデフォルト行が生成されない。
- サマリー基準を定義すると、DBQLは問合わせをそれらのバケットに要約します。各バケットでは、そのバケットに入るセッションでの問合わせ数がカウントされ、経過時間、I/O数、さまざまなCPU時間が集計されます。
- DBQLはサマリー カウンターをキャッシュ内に保存します。内容は10秒分ごとにDBQLSummaryTblテーブルにコミットされ、このときキャッシュがフラッシュされます。
バケットを構成するサマリー基準について次のテーブルに説明します。
SUMMARYオプションで以下の修飾子を使用 | 記録される値の指定内容 |
---|---|
CPUTIME | 1/100秒単位のAMP CPU時間。例: BEGIN QUERY LOGGING LIMIT SUMMARY=5, 10, 15 CPUTIME ON user1; 上記はCPU時間に基づいた問合わせのカウントを意味します。5は0.05秒のCPU時間、10は0.10秒、15は0.15秒のCPU時間です。 |
CPUTIMENORM | 1/100秒単位の正規化されたAMP CPU時間。前記のCPUTIMEと似ていますが、正規化された、共存システムの時間を使用します。 |
ELAPSEDSEC | SUMMARYオプションの修飾子を指定しない場合、経過秒数が使用されます。 BEGIN QUERY LOGGING LIMIT SUMMARY=5, 10, 15 ON user1; 経過秒数が使用されます。次の文を使用することで、経過秒数を明示的に基準として設定できます。 BEGIN QUERY LOGGING LIMIT SUMMARY=5, 10, 15 ELAPSEDSEC ON user1; |
ELAPSEDTIME | 経過時間。nは1/100秒単位で指定します。 |
IOCOUNT | 使用される論理I/O数。たとえば、次のようになります。 BEGIN QUERY LOGGING LIMIT SUMMARY=1000,5000,10000 IOCOUNT ON ALL; |
DBQLは収集間隔(デフォルトは10分ごと)の情報を収集します。収集間隔ごとおよび間隔終了時のアクティブ セッションごとに、問合わせ数、問合わせの経過秒数、CPU時間、論理I/O数を含んだ4行がセッションごとにあります。各行は、4つの情報バケットの1つを表わします。
デフォルトでは、経過時間を使用して4つのバケットの1つに問合わせが修飾されます。次のバケットが使用可能です。
- 0秒から5秒まで
- 5秒を超えて10秒まで
- 10秒を超えて15秒まで
- 15秒を超える
例えば、ユーザーの次のロギング期間の間、2つの問合わせが5秒以内で実行され、3つの問合わせが7秒間実行され、1つの問合わせが15秒を超えて実行される場合、セッションのDBQLSummaryTblには以下の行が書き込まれます。
COUNT SECONDS LOWHIST HIGHHIST ----- ------- ------- -------- 2 1 0 5 3 21 5 10 1 200 15 4294967295
この例では、
- 10秒から15秒の間で実行された問合わせは存在しない
- カウントされたそれぞれの問合わせの平均時間を判別するためには、SECONDSをCOUNTで除算する(例えば、最初の行の2つの問合わせの平均はそれぞれ0.5秒、2番目の行の3つの問合わせの平均はそれぞれ7秒)。
LIMIT THRESHOLD=500 CPUTIME ON user1を指定すると、user1が実行した5CPU秒以上を必要とした問合わせの数が分かります。