概要

SQLの実行計画をツリー構造の図で確認する方法をご案内します。
Verticaで実行計画を取得するには、explainの後にSQL文を付けて実行します。
explainによる実行計画にはツリー構造を図で表示するためのコードが一緒に出力されますので、そのコードを使用してツリー構造の図を表示します。
コードからSQLの実行計画をツリー構造の図で表示するためにはGraphviz(フリーソフト)を使用します。

実行例


以下の例でexplainで取得したツリー構造で表示するためのコードをもとにWindows環境で実行計画のツリー構造を図で表示します。

1.explainでSQLを実行し実行計画とツリー構造で表示するためのコードをファイルに出力

※SQLはlineorder表とdate1表を検索して結合する処理です。

2.1で取得したファイルからツリー構造を図で表示するためのコードだけ残してそれ以外は削除

以下のdigraph G {…} が必要な情報になります。
digraph G {   <=== ★ここから
graph [rankdir=BT, label = "BASE QUERY PLAN\nQuery: explain\nselect sum(lo_extendedprice*lo_discount) as revenue\nfrom lineorder,date1\nwhere lo_orderdate = d_datekey\n



}        <=== ★ここまで(実行計画の最後にあります)

3.GraphvizでSQLの実行計画をツリー構造を図で出力

Graphvizのdotコマンドを使用し2で編集したファイルからjpegファイルを作成します。
C:\>dot -Tjpg q1.dot -o q1.jpg <= q1.jpg(jpegファイル)が作成されます
※dotコマンドの詳細に関してはdot -vで確認してください。

4.3で作成されたjpegファイルの表示

  SQLの実行計画がツリー構造が図で表示されます。
explain_jpg
lineorder表とdate1表を検索して結合していることがわかります。

参考

SQLの実行計画を確認する方法


検証バージョンについて

この記事の内容はVertica 8.0で確認しています。