実行計画の見方

ここでは、ORACLE SQLの実行計画の見方を紹介します。

SQLが遅いとき、性能改善やチューニングをしたいとき、避けては通れないのが実行計画を読むことです。しかし、一度覚えるとそれなりに使える知識なので覚えておいて損はないと思います。

実行計画の見方は次の通りです。
1.実行計画は、インデントがされていて、インデントが右に行くほど深いと言います。
  そして深い順に実行されます。
2.深さが同じ場合は、上から順です。

例えば、次のようなSQLの場合で確認してみましょう。
table1とtable2を結合しているだけのシンプルなSQLです。

select a.col1,b.col2 from table1 inner join table2 on a.col1 = b.col1;

次に実行計画を見ていきます。
・1番目に実行されるのは、インデントが一番深く、上にある、「TABLE ACCESS FULL TABLE1」です。TABLE1のテーブルをフルスキャンします。
・2番目はその下にある、「TABLE ACCESS FULL TABLE2」が実行され、TABLE2のテーブルがフルスキャンされます。
・そして3番目に、2つのテーブルにアクセスした結果をネステッドループで結合していきます。
と言ったように実行されます。意外と簡単です。

複雑なSQLであっても原理原則は変わらないので、慌てずに1つ1つ読んでいけば良いです。

SELECT STATEMENT
NESTED LOOPS –③
TABLE ACCESS FULL TABLE1 –①
TABLE ACCESS FULL TABLE2 –②

Oracle SQLチューニング パフォーマンス改善と事前対策に役立つ (DB selection) [ 加藤祥平 ]

価格:2,808円
(2018/11/19 19:23時点)

実行計画の見方” に対して1件のコメントがあります。

この投稿はコメントできません。