STL_WLM_QUERY
WLM が扱うサービスクラス内で実行が試みられたクエリごとに、レコードが 1 件作成されます。
STL_WLM_QUERY はすべてのユーザーに表示されます。スーパーユーザーはすべての行を表示できますが、通常のユーザーは自分のデータのみを表示できます。詳細については、「システムテーブルとビューのデータの可視性」を参照してください。
このテーブルの一部またはすべてのデータは、SYS モニタリングビュー SYS_QUERY_HISTORY でも確認できます。SYS モニタリングビューのデータは、使いやすく理解しやすいようにフォーマットされます。クエリには、SYS モニタリングビューを使用することをお勧めします。
テーブルの列
列名 | データ型 | 説明 |
---|---|---|
userid | integer | エントリを生成したユーザーの ID。 |
xid | integer | クエリまたはサブクエリのトランザクション ID。 |
task | integer | ワークロードマネージャ全体を通じてクエリを追跡するために使用される ID。複数のクエリ ID と関連付けることができます。クエリを再起動すると、そのクエリには新しいタスク ID ではなく、新しいクエリ ID が割り当てられます。 |
query | integer | クエリ ID。クエリを再起動すると、そのクエリには新しいタスク ID ではなく、新しいクエリ ID が割り当てられます。 |
service_class | integer | サービスクラスの ID。サービスクラスの ID のリストについては、「WLM サービスクラス ID」を参照してください。 |
slot_count | integer | キューに設定された同時実行レベルに従ってクエリが使用する WLM クエリスロットの数。デフォルトは1です。詳細については、「wlm_query_slot_count」を参照してください。 |
service_class_start_time | timestamp | クエリがサービスクラスに割り当てられた時刻。この時刻は UTC タイムゾーンです。 |
queue_start_time | timestamp | クエリがサービスクラスのキューに入れられた時刻。この時刻は UTC タイムゾーンです。 |
queue_end_time | timestamp | クエリがサービスクラスのキューから解放された時刻。この時刻は UTC タイムゾーンです。 |
total_queue_time | bigint | クエリがキュー内で消費した時間の合計 (マイクロ秒単位) |
exec_start_time | timestamp | サービスクラス内でクエリの実行が始まった時刻。この時刻は UTC タイムゾーンです。 |
exec_end_time | timestamp | サービスクラス内でクエリの実行が完了した時刻。この時刻は UTC タイムゾーンです。 |
total_exec_time | bigint | クエリが実行にかかった時間 (マイクロ秒単位)。 |
service_class_end_time | timestamp | クエリがサービスクラスから解放された時刻。この時刻は UTC タイムゾーンです。 |
final_state | character(16) | 将来の利用のために予約されています。 |
est_peak_mem | bigint | 将来の利用のために予約されています。 |
query_priority | char(20) | クエリの優先度です。有効な値は、n/a 、lowest 、low 、normal 、high 、および highest です。ここで、n/a は、クエリ優先度がサポートされていないことを意味します。 |
service_class_name | character(64) | サービクラス名。サービスクラスの詳細については、「WLM システムテーブルとビュー」を参照してください。 |
サンプルクエリ
クエリのキューと実行にかかったクエリの平均時間の表示
次のクエリでは、4 を超えるサービスクラスの現在の設定を表示します。サービスクラス ID のリストについては、「WLM サービスクラス ID」を参照してください。
次のクエリは、各クエリがクエリキュー内に置かれていた時間および実行にかかった時間の平均を、サービスクラス別にマイクロ秒単位で返します。
select service_class as svc_class, count(*), avg(datediff(microseconds, queue_start_time, queue_end_time)) as avg_queue_time, avg(datediff(microseconds, exec_start_time, exec_end_time )) as avg_exec_time from stl_wlm_query where service_class > 4 group by service_class order by service_class;
このクエリは、次のサンプル出力を返します。
svc_class | count | avg_queue_time | avg_exec_time -----------+-------+----------------+--------------- 5 | 20103 | 0 | 80415 5 | 3421 | 34015 | 234015 6 | 42 | 0 | 944266 7 | 196 | 6439 | 1364399 (4 rows)
クエリのキューと実行にかかったクエリの最大時間の表示
次のクエリは、クエリがいずれかのクエリキュー内に置かれていた時間と実行にかかった時間の最大値を、サービスクラスごとにマイクロ秒単位で返します。
select service_class as svc_class, count(*), max(datediff(microseconds, queue_start_time, queue_end_time)) as max_queue_time, max(datediff(microseconds, exec_start_time, exec_end_time )) as max_exec_time from stl_wlm_query where svc_class > 5 group by service_class order by service_class;
svc_class | count | max_queue_time | max_exec_time -----------+-------+----------------+--------------- 6 | 42 | 0 | 3775896 7 | 197 | 37947 | 16379473 (4 rows)