STL_QUERY - Amazon Redshift

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

STL_QUERY

データベースクエリに関する実行情報を返します。

注記

The STL_QUERY and STL_QUERYTEXT views only contain information about queries, not other utility and DDL commands. For a listing and information on all statements executed by Amazon Redshift, you can also query the STL_DDLTEXT and STL_UTILITYTEXT views. For a complete listing of all statements executed by Amazon Redshift, you can query the SVL_STATEMENTTEXT view.

To manage disk space, the STL log views only retain approximately two to five days of log history, depending on log usage and available disk space. If you want to retain the log data, you will need to periodically copy it to other tables or unload it to Amazon S3.

This view is visible to all users. Superusers can see all rows; regular users can see only their own data. 詳細については、「システムテーブルとビューのデータの可視性」を参照してください。

テーブルの列

列名 データ型 説明
userid integer エントリを生成したユーザーの ID。
query integer クエリ ID。クエリ列は、他の各種システムテーブルおよびビューを結合するために使用できます。
label character(320) クエリを実行するために使用される名前、または SET QUERY_GROUP コマンドによって定義されるラベル。クエリがファイルベースでないか、QUERY_GROUP パラメータが設定されていない場合、このフィールドの値は default になります。
xid bigint トランザクション ID。
pid integer プロセス ID。通常、セッション内のすべてのクエリは同一プロセスで実行されるため、一連のクエリを同一セッションで実行した場合、通常、この値は一定です。Following certain internal events, Amazon Redshift might restart an active session and assign a new PID. 詳細については、「STL_RESTARTED_SESSIONS」を参照してください。
database character(32) クエリが発行されたときにユーザーが接続されたデータベースの名前。
querytxt character(4000) クエリの実際のクエリテキスト。
starttime timestamp UTC で表されたクエリの実行開始時刻。秒の小数部の精度(6 桁)を使用します。次に例を示します。2009-06-12 11:29:19.131358.
endtime timestamp Time in UTC that the query finished executing, with 6 digits of precision for fractional seconds. 次に例を示します。2009-06-12 11:29:19.131358.
aborted integer クエリがシステムによって中断されたかユーザーによってキャンセルされた場合、この列は 1 になります。クエリが (クライアントに結果を返すことも含めて) 最後まで実行された場合、この列は 0 になります。クライアントが結果を受け取る前に接続を解除した場合、クエリはバックエンドで正常に完了した場合でも、キャンセルされたものとしてマーク (1) されます。
insert_pristine integer Whether write queries are/were able to run while the current query is/was running. 1 = no write queries allowed. 0 = write queries allowed. この列は、デバッグで使用することが意図されています。
concurrency_scaling_status integer

クエリがメインクラスター、または同時実行スケーリングクラスターのどちらで実行されたかを示します。指定できる値は次のとおりです。

0 - メインクラスターで実行

1 - 同時実行スケーリングクラスターで実行

1 より大きい - メインクラスターで実行

サンプルクエリ

次のクエリは、最近実行された 5 つのクエリを表示します。

select query, trim(querytxt) as sqlquery from stl_query order by query desc limit 5; query | sqlquery ------+-------------------------------------------------- 129 | select query, trim(querytxt) from stl_query order by query; 128 | select node from stv_disk_read_speeds; 127 | select system_status from stv_gui_status 126 | select * from systable_topology order by slice 125 | load global dict registry (5 rows)

次のクエリは、2013 年 2 月 15 日に実行されたクエリを所要時間の降順で返します。

select query, datediff(seconds, starttime, endtime), trim(querytxt) as sqlquery from stl_query where starttime >= '2013-02-15 00:00' and endtime < '2013-02-16 00:00' order by date_diff desc; query | date_diff | sqlquery -------+-----------+------------------------------------------- 55 | 119 | padb_fetch_sample: select count(*) from category 121 | 9 | select * from svl_query_summary; 181 | 6 | select * from svl_query_summary where query in(179,178); 172 | 5 | select * from svl_query_summary where query=148; ... (189 rows)

以下のクエリは、クエリのキュー時間および実行時間を表示します。concurrency_scaling_status = 1 を使用したクエリは、同時実行スケーリングクラスターで実行されました。他のすべてのクエリは、メインクラスターで実行されました。

SELECT w.service_class AS queue , q.concurrency_scaling_status , COUNT( * ) AS queries , SUM( q.aborted ) AS aborted , SUM( ROUND( total_queue_time::NUMERIC / 1000000,2 ) ) AS queue_secs , SUM( ROUND( total_exec_time::NUMERIC / 1000000,2 ) ) AS exec_secs FROM stl_query q JOIN stl_wlm_query w USING (userid,query) WHERE q.userid > 1 AND service_class > 5 AND q.starttime > '2019-03-01 16:38:00' AND q.endtime < '2019-03-01 17:40:00' GROUP BY 1,2 ORDER BY 1,2;