気軽に楽しくプログラムと遊ぶ

自分が興味があってためになるかもって思う情報を提供しています。

Oracle 実行計画、統計情報の概要

SQLが実行されるまでの流れ

まずは、SQL実行の全体像について確認する。

f:id:tamata78:20210128173916p:plain

  • サーバープロセスがSQLを受け取る
  • SQLチェック:構文チェック、指定テーブルや列の確認、アクセス権の確認
  • 実行計画の確認:共有プール内に該当SQLの実行計画があるかどうか。あればそのまま検索。なければ、オプティマイザの処理へ
  • オプティマイザで評価:統計情報を参照しつつ、実行計画をいくつか作成、比較して最適な実行計画を選択
  • 選択した実行計画を共有プールへ格納する
  • 実行計画を元にSQLを実行する

画像引用:https://qiita.com/zd6ir7/items/abbb1e92701992d32b88

実行計画

SQLを実行するための計画。
フルスキャンする、インデックスを使うなどの無数の選択肢から最短ルートの実行方法を計画したもの
統計情報を元に作成されるため、統計情報が適切な情報になっていることが重要

統計情報

  • 構成: 表統計、列統計、索引統計、システム統計
  • 取得タイミング:自動、手動、SQL実行時