この記事ではOracle Databaseにおける実行計画とは何かについて解説します。
実行計画とは
実行計画とはSQLが実行された際にどのような方法で表のデータにアクセスするか、どのような順番で表にデータにアクセスするかを決めるものです。
複雑なSQLでは複数のテーブル、複数のインデックスから成り立っているため、テーブルの検索順や、索引の使用の有無で処理時間が変わってきます。
実行計画を最適化することで、DBの負荷を軽減したり、処理時間を早くすることができます。
実行計画を構成する要素
実行計画は以下の3つの要素の組み合わせで構成されています。
・アクセスパス
表からデータを取り出す経路のことです。
表の全データにアクセスするフルテーブルスキャン、索引を使用するインデックススキャンなどの種類があります。
・結合方法
複数のテーブルをどのように結合するかを表します。
ネステッドループ結合、ハッシュ結合などの種類があります。
・結合順序
複数の表を結合する際にどの表から結合するかを表します。
3つ以上の表を結合する際はまず2つの表を結合し、結合したものをもう1つの表と結合と繰り返していきます。