OpenText Analytics Database 旧Vertica

技術情報サイト

Analytics Database

SQLの実行計画をツリー構造の図で確認する(Graphviz)

公開日:
更新日:
基本操作
#実行計画

概要

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

実行例

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

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

dbadmin=> \o q1.dot    <= q1.dotファイルにexplainの結果を出力します。
dbadmin=> explain      <= explainで以下のSQLを実行します。
dbadmin-> select sum(lo_extendedprice*lo_discount) as revenue
dbadmin-> from lineorder,date1
dbadmin-> where lo_orderdate = d_datekey
dbadmin->   and d_year = 1993
dbadmin->   and lo_discount between 1 and 3
dbadmin->   and lo_quantity < 25;
dbadmin=> \o

※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で確認しています。