AWS Redshiftでクエリを実行して実行計画を取得

AWSのRedshiftでクエリを実行して実行計画を取得するサンプルです。

目次

サンプル Redshiftとは
  explainで実行計画を取得する
実行したSQLの実行計画を確認する
STL システムビューのstl_explainから実行計画を取得する

Redshiftとは

  • Redshiftは、フルマネージド型のデータウェアハウスサービスです。
  • データウェアハウスとは、大量のデータを収集、保存、分析するためのデータベースです。
  • PostgreSQLをベースに開発されています。
  • TICKITと呼ばれるサンプルテーブルを使用します。
    https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/c_sampledb.html

 

explainで実行計画を取得する

1.検索入力欄で「Redshift」と入力し、表示された「Redshift」をクリックします。
※画面右上のリージョンを確認します。例:東京 ap-northeast-1

2.画面左のクラスターをクリックし、「クエリエディタ」をクリックします。

3.データベースに接続し以下のSQLを実行します。

explain
select * from users
inner join SALES
on users.userid = SALES.SELLERID

explainは、実際にクエリを発行しません。(データは取得されません)

usersテーブルとsalesテーブルは、サンプルとして最初からあるテーブルです。データもあります。

https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/c_sampledb.html

 

4.画面下に実行計画が表示されます。Exportボタンからテキスト形式でダウンロードも可能です。

XN Hash Join DS_BCAST_INNER (cost=624.88..59988008006.76 rows=177707 width=176)
Hash Cond: ("outer".sellerid = "inner".userid)
-> XN Seq Scan on sales (cost=0.00..1724.56 rows=172456 width=64)
-> XN Hash (cost=499.90..499.90 rows=49990 width=112)
-> XN Seq Scan on users (cost=0.00..499.90 rows=49990 width=112)

 

実行したSQLの実行計画を確認する

1.クエリエディタで以下のSQLを実行します。

select * from users
inner join SALES
on users.userid = SALES.SELLERID

 

2.SQLの実行完了後、画面左にある「クエリとロード」をクリックします。

 

3.確認したいSQLのクエリの数値をクリックします。

 

4.クエリプランをクリックするとクエリプランの実際のステップを確認できます。

 

STL システムビューのstl_explainから実行計画を取得する

stl_explainからも実行計画を取得できます。

select * from stl_explain
where query = 451

whereのqueryの値は、クエリIDを指定します。

https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/r_STL_EXPLAIN.html

関連の記事

AWS Redshiftを作成・削除・実行結果を確認する

△上に戻る