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