Oracle SQL実行計画

実行計画とは

実行計画は、SQLOracleで実行される手順を示します。同じ結果を表示するSQLでも、実行計画が異なればパフォーマンスが大きく変わります。実行計画が不適切だと、SQLの実行時に正しい手順が踏めず、パフォーマンスの低下などを引き起こします。 そのため、実行計画を確認することは、SQLを扱うシステムにとって重要なタスクになります。

実行計画に含まれる情報

実行計画には様々な情報が含まれています。

実行計画を見れば、対象テーブルに対してどのようなステップを踏んで結果を出力しているかがわかります。1つのSQLの中でどのテーブルの読み込みで時間がかかっているのか、索引がつかわれているかいないか、といったことが把握でき、パフォーマンス劣化の原因を突き止めるのに役立ちます。

実行計画の確認方法

実行計画の確認方法は様々なものがありますが、主に使われるものを三つ紹介します。 

  1. EXPLAIN PLAN実行後にDISPLAYを実行して、実行計画を確認する。この方法は、実際にSQLを実行しないため簡単に確認することが可能です。
  2. SQL実行後にDISPLAY_CURSORを実行して、共有プール上の実行計画を確認する。この方法は、実際にSQLを実行しなければなりません。実行計画の内容は実測値を確認することが可能です。
  3. 初期化パラメータSTATISTICS_LEVEL=ALLを設定したうえでSQLを実行し、DISPLAY_CURSORに、引数format=>’ALLSTATS LAST’を指定して、共有プール上の実行計画を確認する。

まとめ

今回は実行計画の基礎知識を解説してみました。SQLが非効率な場合は、実行計画を取得し確認することがパフォーマンスチューニングの第一歩です。効率のよいSQLを実行するためにも、実行計画の内容を正しく理解しましょう。

 

Smallitのサービス