SQLが実行されるまでの流れ
まずは、SQL実行の全体像について確認する。
- サーバープロセスがSQLを受け取る
- SQLチェック:構文チェック、指定テーブルや列の確認、アクセス権の確認
- 実行計画の確認:共有プール内に該当SQLの実行計画があるかどうか。あればそのまま検索。なければ、オプティマイザの処理へ
- オプティマイザで評価:統計情報を参照しつつ、実行計画をいくつか作成、比較して最適な実行計画を選択
- 選択した実行計画を共有プールへ格納する
- 実行計画を元にSQLを実行する
画像引用:https://qiita.com/zd6ir7/items/abbb1e92701992d32b88
実行計画
SQLを実行するための計画。
フルスキャンする、インデックスを使うなどの無数の選択肢から最短ルートの実行方法を計画したもの
統計情報を元に作成されるため、統計情報が適切な情報になっていることが重要
統計情報
- 構成: 表統計、列統計、索引統計、システム統計
- 取得タイミング:自動、手動、SQL実行時