STL_WLM_QUERY - Amazon Redshift

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/alowestlownormalhigh、および 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)