2017-01-04 12 views
1

私はredshiftでいくつかのクエリをベンチマークしているので、テーブルに加えた変更(例えば、エンコーディングの追加やバキュームの実行など)をインテリジェントに伝えることができます。私はstl_queryテーブルをLIKE句でクエリして、私が興味のあるクエリを見つけることができるので、クエリIDを持っていますが、stv_query_summaryのようなテーブル/ビューは非常に細かいので、必要な要約を生成する方法がわかりません!クエリーの実行時間の合計を取得するにはどうすればよいですか?

guiダッシュボードには私が興味を持っているメトリクスが表示されますが、後の分析/比較のためにフォーマットを保存するのは難しいです(言い換えれば、スクリーンショットを撮りたくありません)。 SQLの選択でそのビューを再構築する良い方法はありますか?

+0

AWS Admin/Redshiftセクションは、このような情報をGUI形式で共有します。 – kadalamittai

+0

右 - さらなる解析のためにこれらの結果を他の場所に保存したいので、GUIとの作業は避けたい。コピーしたりスクリーンショットを撮ったりすることはできますが、それは理想的ではありません。 –

+0

が意味を持ちます。 aws login redshiftコンソールに描かれているほとんどのデータは、表形式で表示されます。 SVV、STLなどを使用することができます。 – kadalamittai

答えて

1

は、ここでは、ミリ秒単位で実行時間を照会与えるために取り除か言わスクリプトの一つであるhttps://github.com/awslabs/amazon-redshift-utils

におけるいくつかのusefulsツール/スクリプトがあります。あなたが探している結果を表示するためなどの発注、フィルタを再生する:アレックスの答えに追加するには

select userid, label, stl_query.query, trim(database) as database, trim(querytxt) as qrytext, starttime, endtime, datediff(milliseconds, starttime,endtime)::numeric(12,2) as run_milliseconds, 
     aborted, decode(alrt.event,'Very selective query filter','Filter','Scanned a large number of deleted rows','Deleted','Nested Loop Join in the query plan','Nested Loop','Distributed a large number of rows across the network','Distributed','Broadcasted a large number of rows across the network','Broadcast','Missing query planner statistics','Stats',alrt.event) as event 
from stl_query 
left outer join (select query, trim(split_part(event,':',1)) as event from STL_ALERT_EVENT_LOG group by query, trim(split_part(event,':',1))) as alrt on alrt.query = stl_query.query 
where userid <> 1 
-- and (querytxt like 'SELECT%' or querytxt like 'select%') 
-- and database = '' 
order by starttime desc 
limit 100 
0

を、私はstl_queryテーブルは、クエリが実行時前にキューにあった場合という不都合があることをコメントしたいですキュー時間が実行時間に含まれるため、ランタイムはクエリのパフォーマンスの非常に良い指標にはなりません。

クエリの実際の実行時間を理解するには、total_exec_timeのstl_wlm_queryをチェックします。

select total_exec_time 
from stl_wlm_query 
where query='query_id' 
関連する問題