実行計画とクエリオプティマイザとは?
実行計画とクエリオプティマイザとは、SQLは「何が欲しいか」だけを書く非手続き型なので、どの索引を使い、どの順で表を結合し、どの結合方式を取るかはDBMSのオプティマイザが決める。その決定結果が実行計画で、EXPLAIN等のコマンドで確認できる。計画は行数や値の分布を持つ統計情報にもとづくコスト比較で選ばれる。
基本情報技術者試験の過去問では1回出題されています。
じっこうけいかくとくえりおぷてぃまいざ
実行計画とクエリオプティマイザの意味
SQLは「何が欲しいか」だけを書く非手続き型なので、どの索引を使い、どの順で表を結合し、どの結合方式を取るかはDBMSのオプティマイザが決める。その決定結果が実行計画で、EXPLAIN等のコマンドで確認できる。計画は行数や値の分布を持つ統計情報にもとづくコスト比較で選ばれる。
実行計画とクエリオプティマイザの具体例
EXPLAINで計画を見て「全表走査」が出ていれば索引の欠落や条件の書き方を疑う。大量データを投入した直後は統計情報が古く、DBMSが実際は100万行の表を100行と見積もって不適切な結合方式を選ぶため、統計情報を再収集して直す。
実行計画とクエリオプティマイザは試験でどう引っ掛けられる?
SQLの書き方(副問い合わせか結合か)を変えても、オプティマイザが同じ計画に書き換えることは多い。逆に、統計情報が古いだけで急に性能劣化することもある。SQLを疑う前に統計情報と計画を確認する順序が問われる。また開発環境で速くても、本番のデータ量と分布では計画そのものが変わる点も見落としやすい。
実行計画とクエリオプティマイザが出た過去問
クライアントサーバシステムにおいて、利用頻度が高い命令群をあらかじめサーバ上のDBMSに格納しておくことによって、クライアントサーバ間のネットワーク負荷を軽減す…
正解:ストアドプロシージャ
要点:ストアドプロシージャは処理をDB側に置き通信量を減らす
ストアドプロシージャは、一連のSQL文と手続き的な処理をあらかじめコンパイルしてDBMS側に登録しておく仕組みである。クライアントは手続き名と引数を送るだけで済むので、SQL文を毎回送る場合に比べてネットワーク上を流れるデータ量が減り、負荷が軽くなる。サーバ側で実行計画が再利用される分、性能面でも有利になる。
出典:平成29年度 秋期 基本情報技術者試験 午前 問26(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。