PREPARATION
受験対策

Silverの例題解説
「S2.5 基本的な運用管理作業(自動バキュームの概念と動作)」

今回は、Silverの「S2 運用管理 - S2.5 基本的な運用管理作業(自動バキュームの概念と動作)」からの出題です。

例題

2.109

バキューム(VACUUM)と自動バキュームの違いの説明として適切なものを3つ選びなさい。

  1. VACUUMはオプションで指定しなければ不要領域の回収のみを実行するのに対し、自動バキュームは不要領域の回収と解析(ANALYZE)の両方を実行する。
  2. VACUUMは対象とするテーブルのリストを指定する必要があるが、自動バキュームは挿入・更新・削除されたデータが一定量以上のテーブルが自動的に対象となる。
  3. VACUUMは一時テーブル(temporary table)を対象とできるが、自動バキュームでは一時テーブルは対象外である。

  4. VACUUMはオプションを指定することでファイルサイズを縮小することができるが、自動バキュームには同等の機能がない。

  5. VACUUMはOSの機能などを使って定期的に自動実行するようにできる。自動バキュームはPostgreSQLサーバの稼働中で、トランザクションの実行量が少ないときに自動的に実行されるので、OSの機能の設定は不要である。

※この例題は実際のOSS-DB技術者認定試験とは異なります。
例題公開日:2020年10月29日

解答と解説

PostgreSQLのデータベースは追記型の構造をとることでマルチバージョニングなどの機能を実現しています。このためデータの更新・削除をしたときに削除されて不要になった領域が自動的には再利用されず、放置するとテーブルが占めるディスク領域のサイズがどんどん大きくなります。VACUUMを実行すると、不要になった領域が回収されて再利用可能になり、次回以降のINSERTやUPDATEで(可能であれば)その領域が使用され、ディスク領域の消費が増えなくなります。このVACUUMを自動的に実行する自動バキュームはデフォルトで有効になっていて、適切な設定がされているので、手動でVACUUMを実行する機会は少なくなっていると思いますが、原理については理解しておいてください。

では、選択肢を順に見ていきます。
VACUUMは特にオプションを指定しなければ、不要領域の回収のみを行いますが、ANALYZEオプションを指定すれば、テーブルの解析も行います。これに対し、自動バキュームは不要領域の回収と解析の両方を行います。
VACUUMは対象とするテーブルのリストを指定することができますが、指定しなければ、実行したユーザの権限でVACUUM可能な全テーブルが対象となります。自動バキュームは全テーブルのうち挿入・更新・削除による変更の量がある閾値を超えたテーブルを対象に回収と解析の処理を行います。
一時テーブルは、それを作成したセッションからしか見ることができないため、自動バキュームの対象にはなりません。しかし手動でVACUUMを実行する場合は対象とできます。
通常のVACUUMは不要領域を再利用可能にするだけで、テーブルを構成するファイルのサイズは小さくなりませんが、VACUUMをFULLオプションで実行すると、テーブルへのデータの詰め直しを行うためファイルサイズが小さくなります。ただし、テーブルがロックされるなど副作用もありますから、どうしても必要なとき以外はVACUUM FULLの操作は行わないようにしましょう。自動バキュームにはVACUUM FULLの機能はありません。
OSの機能(例えばLinuxのcron)を使って、VACUUMの実行をスケジューリングすることも可能です。自動バキュームの場合は、自動バキュームランチャと呼ばれるプロセスが常駐していて、そこから一定時間おきに自動バキュームワーカプロセスが起動されます。実際にVACUUMを行うのはこのワーカプロセスです。自動バキュームはトランザクションの量の多少とは関係なしに、一定時間おきに起動されますが、この時間間隔は設定パラメータで調整できます。

したがって正解はA、C、Dです。

例題解説についてのご質問やご意見は以下からご連絡ください。

※本例題および解説は、例題作成者から提供されたものです。実際の試験問題とは異なります。
※実際の試験問題に関するお問い合わせについてはご回答いたしかねます。あからじめご了承ください。

企業の基幹システムや業務システム、AIなどの
新領域での「PostgreSQL」の採用が拡大している中、
昇格・昇給・就職・転職に必ず役立つ認定です

OSS-DBの受験対策

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

例題解説

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

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

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

無料技術解説セミナー

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

OSS-DB道場

OSS-DBやPostgreSQLの知識、技術を得るために役立つ情報の紹介やコラムを公開しています。