PREPARATION
受験対策

Goldの例題解説「パフォーマンスチューニング - 実行計画のチューニング」

今回は、Goldの「パフォーマンスチューニング - 実行計画のチューニング」からの出題です。

例題

3.10

GUCパラメータのenable_seqscanをonからoffに変更する前後で、同一のクエリに対してEXPLAIN ANALYZE文で実行計画を取得する。
実行計画の変化の説明として、最も適切ではないものを1つ選びなさい。
この時、enable_seqscan以外の条件はすべて同一とする。

  1. Total runtimeの値が大きくなる可能性がある

  2. Total runtimeの値が小さくなる可能性がある

  3. 最上位ノードの全体推定コストが大きくなる可能性がある

  4. 最上位ノードの全体推定コストが小さくなる可能性がある

  5. 全く同一の実行計画が選択される可能性がある

※この例題は実際のOSS-DB技術者認定試験とは異なります。

解答と解説

【Aついて】
EXPLAIN ANALYZEで表示されるTotal runtimeは総実行時間を意味します。
enable_seqscanをoffにすることでTotal runtimeが大きくなる可能性としては、本来はシーケンシャルスキャンを利用すべきクエリなのに、他の効率の悪い方式が利用されてしまうケースが考えられます。
よって、Aは適切な内容です。

【Bについて】
enable_seqscanをoffにすることでTotal runtimeが小さくなる可能性としては、統計情報の精度が足りない等の理由で、本来はシーケンシャルスキャンを利用すべきではないのに選択されてしまっていたケースが考えられます。
この場合、enable_seqscanをoffにすることで、他の効率の良い方式が利用されるようになる可能性があります。
よって、Bは適切な内容です。

【Cについて】
シーケンシャルスキャンが絶対に必須のクエリの場合は、enable_seqscanがoffであっても、シーケンシャルスキャンが選択されることになります。
この時、シーケンシャルスキャンのコストは10000000000として算定されるようになるため、全体推定コストが極端に大きくなります。
よって、Cは適切な内容です。

【Dについて】
enable_seqscanをonからoffに変更した場合は、前述のようにシーケンシャルスキャンのコストが大きくなるわけであり、他の何らかのコストが小さくなるわけではありませんので、全体推定コストの小さい実行計画が選択される可能性はありません。
前述のBでは、総実行時間が短くなる可能性について言及していますが、enable_seqscanをoffにすることで総実行時間が短くなっていたとしても、全体推定コストは大きくなっていることになります。
(もしも全体推定コストが小さくなっているのだとすれば、enable_seqscanをoffにするより前に、その実行計画が選択されていなければならないことになります)
よって、Dは適切な内容ではありません。

【Eについて】
そもそもenable_seqscanがonの状態でもシーケンシャルスキャンがもともと選択されていないクエリの場合は、enable_seqscanをoffにしても全く同一の実行計画が選択される可能性があります。
よって、Eは適切な内容です。

正解は D です。

今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。

※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。

企業の基幹システムや業務システムでの
OSS-DBの採用がますます拡大している中、
昇格・昇給・就職・転職に必ず役立つ認定資格になります

OSS-DBの受験対策について

受験の学習をサポートする情報や対策に役立つ情報をご紹介

サンプル問題/例題解説

例題 のアーカイブを試験ごとにまとめています。OSS-DB技術者認定試験の学習にお役立てください

学習教材・教育機関のご紹介

OSS-DB認定教材や教育機関について詳しくご説明いたします。

無料技術解説セミナー

受験準備をされていらっしゃる方々を対象に、無料技術解説セミナーの日程をお知らせしています。

OSS-DB道場

受験準備をされていらっしゃる方々を対象に、無料技術解説セミナーの日程をお知らせしています。

LPI-Japan
Platinum Sponsors