実行計画とは

この記事ではOracle Databaseにおける実行計画とは何かについて解説します。

 実行計画とは

実行計画とはSQLが実行された際にどのような方法で表のデータにアクセスするか、どのような順番で表にデータにアクセスするかを決めるものです。

複雑なSQLでは複数のテーブル、複数のインデックスから成り立っているため、テーブルの検索順や、索引の使用の有無で処理時間が変わってきます。

実行計画を最適化することで、DBの負荷を軽減したり、処理時間を早くすることができます。


 実行計画を構成する要素

実行計画は以下の3つの要素の組み合わせで構成されています。

・アクセスパス

表からデータを取り出す経路のことです。

表の全データにアクセスするフルテーブルスキャン、索引を使用するインデックススキャンなどの種類があります。

・結合方法

複数のテーブルをどのように結合するかを表します。

ネステッドループ結合、ハッシュ結合などの種類があります。

・結合順序

複数の表を結合する際にどの表から結合するかを表します。

3つ以上の表を結合する際はまず2つの表を結合し、結合したものをもう1つの表と結合と繰り返していきます。