SYS_QUERY_HISTORY - Amazon Redshift (original) (raw)
ユーザークエリーの詳細表示には、SYS_QUERY_HISTORY を使用します。いくつかのフィールドに関する累積統計を含むユーザークエリが、それぞれの行により表されます。このビューには、データ定義言語 (DDL)、データ操作言語 (DML)、コピー、アンロード、Amazon Redshift Spectrum など、さまざまな種類のクエリが含まれています。ここには、実行中のクエリと終了したクエリの両方が表示されます。
SYS_QUERY_HISTORY は、すべてのユーザーが表示可能です。スーパーユーザーはすべての行を表示できますが、通常のユーザーは自分のデータのみを表示できます。詳細については、「システムテーブルとビューのデータの可視性」を参照してください。
テーブルの列
列名 | データ型 | 説明 |
---|---|---|
user_id | integer | クエリを送信したユーザーの ID。 |
query_id | bigint | クエリ識別子。 |
query_label | character(320) | クエリ名の短縮形。 |
transaction_id | bigint | トランザクション識別子。 |
session_id | integer | クエリを実行しているプロセスのプロセス識別子。 |
database_name | character(128) | クエリが発行されたときにユーザーが接続されたデータベースの名前。 |
query_type | character(32) | クエリのタイプ (SELECT、INSERT、UPDATE、UNLOAD、COPY、COMMAND、DDL、UTILITY、CTAS、OTHER など)。 |
status | character(10) | クエリのステータス。有効な値: 計画 (planning)、キュー済み (queued)、実行中 (running)、終了中 (returning)、失敗 (failed)、キャンセル済み (canceled)、成功 (success)。 |
result_cache_hit | ブール値 | クエリが結果キャッシュと一致するかどうかを示します。 |
start_time | timestamp | クエリが開始された時刻。 |
end_time | timestamp | クエリが完了した時刻。 |
elapsed_time | bigint | クエリの実行が消費した合計時間 (マイクロ秒)。 |
queue_time | bigint | サービスクラスクエリのキューが消費した合計時間 (マイクロ秒)。 |
execution_time | bigint | サービスクラスで実行されている合計時間 (マイクロ秒)。 |
error_message | character(512) | クエリが失敗した理由。 |
returned_rows | bigint | クライアントに返された行の数。 |
returned_bytes | bigint | クライアントに返されたバイト数。 |
query_text | character(4000) | クエリ文字列。この文字列は切り詰められることがあります。 |
redshift_version | character(256) | クエリ実行時の Amazon Redshift のバージョン。 |
usage_limit | character(150) | クエリによって到達した使用制限 ID のリスト。 |
compute_type | varCHAR(32) | クエリがメインクラスターまたは同時実行スケーリングクラスターのどちらで実行されるかを示します。指定できる値は、primary (クエリはメインクラスターで実行)、secondary (クエリはセカンダリクラスターで実行)、または primary-scale (クエリは同時実行クラスターで実行) です。これはプロビジョニングされたクラスターにのみ適用されます。 |
compile_time | bigint | クエリのコンパイルに費やされた合計時間 (マイクロ秒)。 |
planning_time | bigint | クエリのプランニングに費やされた合計時間 (マイクロ秒)。 |
lock_wait_time | bigint | リレーションロックを待機して費やされた合計時間 (マイクロ秒)。 |
service_class_id | integer | サービクラスの ID サービスクラス ID のリストについては、「WLM サービスクラス ID」を参照してください。 この列は、プロビジョニングされたクラスターで実行されるクエリにのみ使用されます。Redshift Serverless で実行されるクエリの場合、この列には -1 が含まれます。 |
service_class_name | character(64) | サービクラス名。 この列は、プロビジョニングされたクラスターで実行されるクエリにのみ使用されます。Amazon Redshift Serverless で実行されるクエリの場合、この列は空です。 |
query_priority | character(20) | クエリが実行されたキューの優先度。可能な値は以下のとおりです。 NULL lowest low 正常 high highest NULL は、そのクエリではクエリの優先度がサポートされていないことを意味します。 この列は、プロビジョニングされたクラスターで実行されるクエリにのみ使用されます。Redshift Serverless で実行されるクエリの場合、この列は空です。 |
short_query_accelerated | character(10) | ショートクエリアクセラレーション (SQA) を使用してクエリが高速化されたかどうか。可能な値は以下のとおりです。 true false NULL この列は、プロビジョニングされたクラスターで実行されるクエリにのみ使用されます。Redshift Serverless で実行されるクエリの場合、この列は空です。 |
サンプルクエリ
次のクエリは、実行中とキューに登録されたクエリを返します。
SELECT user_id,
query_id,
transaction_id,
session_id,
status,
trim(database_name) AS database_name,
start_time,
end_time,
result_cache_hit,
elapsed_time,
queue_time,
execution_time
FROM sys_query_history
WHERE status IN ('running','queued')
ORDER BY start_time;
サンプル出力。
user_id | query_id | transaction_id | session_id | status | database_name | start_time | end_time | result_cache_hit | elapsed_time | queue_time | execution_time
---------+----------+----------------+------------+---------+---------------+---------------------------+----------------------------+------------------+--------------+------------+----------------
101 | 760705 | 852337 | 1073832321 | running | tpcds_1t | 2022-02-15 19:03:19.67849 | 2022-02-15 19:03:19.739811 | f | 61321 | 0 | 0
次のクエリは、特定のクエリのクエリ開始時間、終了時間、キュー時間、経過時間、プランニング時間、およびその他のメタデータを返します。
SELECT user_id,
query_id,
transaction_id,
session_id,
status,
trim(database_name) AS database_name,
start_time,
end_time,
result_cache_hit,
elapsed_time,
queue_time,
execution_time,
planning_time,
trim(query_text) as query_text
FROM sys_query_history
WHERE query_id = 3093;
サンプル出力。
user_id | query_id | transaction_id | session_id | status | database_name | start_time | end_time | result_cache_hit | elapsed_time | queue_time | execution_time | planning_time | query_text
--------+----------+----------------+------------+------------+---------------+----------------------------+----------------------------+------------------+--------------+------------+----------------+---------------+-------------------------------------
106 | 3093 | 11759 | 1073750146 | success | dev | 2023-03-16 16:53:17.840214 | 2023-03-16 16:53:18.106588 | f | 266374 | 0 | 105725 | 136589 | select count(*) from item;
次のクエリは、最近実行された 10 件の SELECT クエリを一覧表示します。
SELECT query_id,
transaction_id,
session_id,
start_time,
elapsed_time,
queue_time,
execution_time,
returned_rows,
returned_bytes
FROM sys_query_history
WHERE query_type = 'SELECT'
ORDER BY start_time DESC limit 10;
サンプル出力。
query_id | transaction_id | session_id | start_time | elapsed_time | queue_time | execution_time | returned_rows | returned_bytes
----------+----------------+------------+----------------------------+--------------+------------+----------------+---------------+----------------
526532 | 61093 | 1073840313 | 2022-02-09 04:43:24.149603 | 520571 | 0 | 481293 | 1 | 3794
526520 | 60850 | 1073840313 | 2022-02-09 04:38:27.24875 | 635957 | 0 | 596601 | 1 | 3679
526508 | 60803 | 1073840313 | 2022-02-09 04:37:51.118835 | 563882 | 0 | 503135 | 5 | 17216
526505 | 60763 | 1073840313 | 2022-02-09 04:36:48.636224 | 649337 | 0 | 589823 | 1 | 652
526478 | 60730 | 1073840313 | 2022-02-09 04:36:11.741471 | 14611321 | 0 | 14544058 | 0 | 0
526467 | 60636 | 1073840313 | 2022-02-09 04:34:11.91463 | 16711367 | 0 | 16633767 | 1 | 575
511617 | 617946 | 1074009948 | 2022-01-20 06:21:54.44481 | 9937090 | 0 | 9899271 | 100 | 12500
511603 | 617941 | 1074259415 | 2022-01-20 06:21:45.71744 | 8065081 | 0 | 7582500 | 100 | 8889
511595 | 617935 | 1074128320 | 2022-01-20 06:21:44.030876 | 1051270 | 0 | 1014879 | 1 | 72
511584 | 617931 | 1074030019 | 2022-01-20 06:21:42.764088 | 609033 | 0 | 485887 | 100 | 8438
次のクエリは、毎日実行される選択クエリ数と平均クエリ経過時間を表示しています。
SELECT date_trunc('day',start_time) AS exec_day,
status,
COUNT(*) AS query_cnt,
AVG(datediff (microsecond,start_time,end_time)) AS elapsed_avg
FROM sys_query_history
WHERE query_type = 'SELECT'
AND start_time >= '2022-01-14'
AND start_time <= '2022-01-18'
GROUP BY exec_day,
status
ORDER BY exec_day,
status;
サンプル出力。
exec_day | status | query_cnt | elapsed_avg
---------------------+---------+-----------+------------
2022-01-14 00:00:00 | success | 5253 | 56608048
2022-01-15 00:00:00 | success | 7004 | 56995017
2022-01-16 00:00:00 | success | 5253 | 57016363
2022-01-17 00:00:00 | success | 5309 | 55236784
2022-01-18 00:00:00 | success | 8092 | 54355124
次のクエリは、毎日実行されるクエリ経過時間のパフォーマンスを表示しています。
SELECT distinct date_trunc('day',start_time) AS exec_day,
query_count.cnt AS query_count,
Percentile_cont(0.5) within group(ORDER BY elapsed_time) OVER (PARTITION BY exec_day) AS P50_runtime,
Percentile_cont(0.8) within group(ORDER BY elapsed_time) OVER (PARTITION BY exec_day) AS P80_runtime,
Percentile_cont(0.9) within group(ORDER BY elapsed_time) OVER (PARTITION BY exec_day) AS P90_runtime,
Percentile_cont(0.99) within group(ORDER BY elapsed_time) OVER (PARTITION BY exec_day) AS P99_runtime,
Percentile_cont(1.0) within group(ORDER BY elapsed_time) OVER (PARTITION BY exec_day) AS max_runtime
FROM sys_query_history
LEFT JOIN (SELECT date_trunc('day',start_time) AS day, count(*) cnt
FROM sys_query_history
WHERE query_type = 'SELECT'
GROUP by 1) query_count
ON date_trunc('day',start_time) = query_count.day
WHERE query_type = 'SELECT'
ORDER BY exec_day;
サンプル出力。
exec_day | query_count | p50_runtime | p80_runtime | p90_runtime | p99_runtime | max_runtime
---------------------+-------------+-------------+-------------+-------------+--------------+--------------
2022-01-14 00:00:00 | 5253 | 16816922.0 | 69525096.0 | 158524917.8 | 486322477.52 | 1582078873.0
2022-01-15 00:00:00 | 7004 | 15896130.5 | 71058707.0 | 164314568.9 | 500331542.07 | 1696344792.0
2022-01-16 00:00:00 | 5253 | 15750451.0 | 72037082.2 | 159513733.4 | 480372059.24 | 1594793766.0
2022-01-17 00:00:00 | 5309 | 15394513.0 | 68881393.2 | 160254700.0 | 493372245.84 | 1521758640.0
2022-01-18 00:00:00 | 8092 | 15575286.5 | 68485955.4 | 154559572.5 | 463552685.39 | 1542783444.0
2022-01-19 00:00:00 | 5860 | 16648747.0 | 72470482.6 | 166485138.2 | 492038228.67 | 1693483241.0
2022-01-20 00:00:00 | 1751 | 15422072.0 | 69686381.0 | 162315385.0 | 497066615.00 | 1439319739.0
2022-02-09 00:00:00 | 13 | 6382812.0 | 17616161.6 | 21197988.4 | 23021343.84 | 23168439.0
次のクエリは、クエリタイプの分散を表示しています。
SELECT query_type,
COUNT(*) AS query_count
FROM sys_query_history
GROUP BY query_type
ORDER BY query_count DESC;
サンプル出力。
query_type | query_count
------------+-------------
UTILITY | 134486
SELECT | 38537
DDL | 4832
OTHER | 768
LOAD | 768
CTAS | 748
COMMAND | 92