実行計画とクエリオプティマイザとは?
実行計画とクエリオプティマイザとは、SQLは「何が欲しいか」だけを書く非手続き型なので、どの索引を使い、どの順で表を結合し、どの結合方式を取るかはDBMSのオプティマイザが決める。その決定結果が実行計画で、EXPLAIN等のコマンドで確認できる。計画は行数や値の分布を持つ統計情報にもとづくコスト比較で選ばれる。
じっこうけいかくとくえりおぷてぃまいざ
実行計画とクエリオプティマイザの意味
SQLは「何が欲しいか」だけを書く非手続き型なので、どの索引を使い、どの順で表を結合し、どの結合方式を取るかはDBMSのオプティマイザが決める。その決定結果が実行計画で、EXPLAIN等のコマンドで確認できる。計画は行数や値の分布を持つ統計情報にもとづくコスト比較で選ばれる。
実行計画とクエリオプティマイザの具体例
EXPLAINで計画を見て「全表走査」が出ていれば索引の欠落や条件の書き方を疑う。大量データを投入した直後は統計情報が古く、DBMSが実際は100万行の表を100行と見積もって不適切な結合方式を選ぶため、統計情報を再収集して直す。
実行計画とクエリオプティマイザは試験でどう引っ掛けられる?
SQLの書き方(副問い合わせか結合か)を変えても、オプティマイザが同じ計画に書き換えることは多い。逆に、統計情報が古いだけで急に性能劣化することもある。SQLを疑う前に統計情報と計画を確認する順序が問われる。また開発環境で速くても、本番のデータ量と分布では計画そのものが変わる点も見落としやすい。
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。