基本的な運用管理作業(自動バキュームの概念と動作)」からの出題です。例題1.109バキューム(VACUUM)と自動バキュームの違いの説明として適切なものを3つ選びなさい。VACUUMはオプションで指定しなければ不要領域の回収のみを実行するのに対し、自動バキュームは不要領域の回収と解析(ANALYZE)の両方を実行する。VACUUMは対象とするテーブルのリストを指定する必要があるが、自動バキュームは挿入・更新・削除されたデータが一定量以上のテーブルが自動的に対象となる。table)を対象とできるが、自動バキュームでは一時テーブルは対象外である。VACUUMはオプションを指定することでファイルサイズを縮小することができるが、自動バキュームには同等の機能がない。VACUUMはOSの機能などを使って定期的に自動実行するようにできる。自動バキュームはPostgreSQLサーバの稼働中で、トランザクションの実行量が少ないときに自動的に実行されるので、OSの機能の設定は不要である。※この例題は実際のOSS-DB技術者認定試験とは異なります。解答と解説PostgreSQLのデータベースは追記型の構造をとることでマルチバージョニングなどの機能を実現しています。このためデータの更新・削除をしたときに削除されて不要になった領域が自動的には再利用されず、放置するとテーブルが占めるディスク領域のサイズがどんどん大きくなります。VACUUMを実行すると、不要になった領域が回収されて再利用可能になり、次回以降のINSERTやUPDATEで(可能であれば)その領域が使用され、ディスク領域の消費が増えなくなります。このVACUUMを自動的に実行する自動バキュームはデフォルトで有効になっていて、適切な設定がされているので、手動でVACUUMを実行する機会は少なくなっていると思いますが、原理については理解しておいてください。選択肢を順に見ていきます。VACUUMは特にオプションを指定しなければ、不要領域の回収のみを行いますが、ANALYZEオプションを指定すれば、テーブルの解析も行います。これに対し、自動バキュームは不要領域の回収と解析の両方を行います。VACUUMは対象とするテーブルのリストを指定することができますが、指定しなければ、実行したユーザの権限でVACUUM可能な全テーブルが対象となります。自動バキュームは全テーブルのうち挿入・更新・削除による変更の量がある閾値を超えたテーブルを対象に回収と解析の処理を行います。一時テーブルは、それを作成したセッションからしか見ることができないため、自動バキュームの対象にはなりません。手動でVACUUMを実行する場合は対象とできます。通常のVACUUMは不要領域を再利用可能にするだけで、テーブルを構成するファイルのサイズは小さくなりませんが、VACUUMをFULLオプションで実行すると、テーブルへのデータの詰め直しを行うためファイルサイズが小さくなります。FULLの操作は行わないようにしましょう。FULLの機能はありません。OSの機能(例えばLinuxのcron)を使って、VACUUMの実行をスケジューリングすることも可能です。自動バキュームの場合は、自動バキュームランチャと呼ばれるプロセスが常駐していて、そこから一定時間おきに自動バキュームワーカプロセスが起動されます。実際にVACUUMを行うのはこのワーカプロセスです。自動バキュームはトランザクションの量の多少とは関係なしに、一定時間おきに起動されますが、この時間間隔は設定パラメータで調整できます。したがって正解はA、C、Dです。今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。ご質問・ご意見はこちら※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。アーカイブを試験ごとにまとめています。ご紹介OSS-DB認定教材や教育機関について詳しくご説明いたします。受験準備をされていらっしゃる方々を対象に、無料技術解説セミナーの日程をお知らせしています。受験準備をされていらっしゃる方々を対象に、無料技術解説セミナーの日程をお知らせしています。