PREPARATION
受験対策

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

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

例題

3.03

データベースに大量データを投入する際の性能を向上させるために、一時的に講じることとして、適切とは言えないものを2つ選びなさい。

  1. 自動コミットをオフにする

  2. インデックスや外部キー制約を削除する

  3. maintenance_work_memを増やす

  4. checkpoint_segmentsを減らす

  5. checkpoint_timeoutを増やす

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

解答と解説

データベースに大量データを投入する際の時間短縮手段に関する問題です。
大量データ投入時は、通常時とは異なる運用のため、通常運用時の設定値や設定内容では性能に大きな影響を受けることになります。そのため、一般的には、一時的に設定値を変更したり、主に制約になるような設定を解除したりして、性能を向上させます。

自動コミットがオンの場合、行追加のたびにコミットが発生します。
自動コミットをオフにして最後に1回だけコミットするほうが、コミットにかかる処理を一度に実施できるため、作業時間の短縮につながります。
したがって、A.は適切です。

インデックスや外部キー制約があると、行追加のたびに制約チェックやインデックス修正作業が必要になります。
その処理を省略し最後に一括して制約チェックやインデックス作成をすることで作業時間短縮につながります。
したがって、B.は適切です。

maintenance_work_memは、CREATE INDEX や、ALTER TABLE ADD FOREIGN KEY のような保守操作で使用されるメモリの最大容量を指定するものです。
この値を増やすことで、削除したインデックスや外部キー制約を復活する作業の時間短縮につながります。
B.とセットで効果があります。
したがって、C.は適切です。

checkpoint_segmentsは、チェックポイントが発生するタイミングを指定するパラメータのひとつで、WALファイル数を指定します。
指定した数のWALファイルが生成されるとチェックポイントが発生します。
つまり、この数を減らすと、少ないWALファイル数でチェックポイントが発生することになり、結果的にチェックポイントの回数が増えてしまいます。
したがって、D.は不適切です(checkpoint_segmentsを増やすことが適切な対処)。

checkpoint_timeoutも、チェックポインが発生するタイミングを指定するパラメータのひとつです。
チェックポイント間の最大間隔(時間)を指定するものなので、この値を増やすことで、チェックポイントの回数を減らすことができます。
しかし、大量データ登録時は大量のWALが発生するため、チェックポイント発生のタイミングは、checkpoint_timeoutで指定した値に関わらず、checkpoint_segmentsに依存することになります。
つまり、チェックポイントの回数を減らすための有効な手段にはなりません。
したがって、E.は適切とは言えません(checkpoint_timeoutを変更することに意味がない)。

正解は D と E です。

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

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

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

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

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

サンプル問題/例題解説

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

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

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

無料技術解説セミナー

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

OSS-DB道場

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

LPI-Japan
Platinum Sponsors