今回は、Goldの「パフォーマンスチューニング - 性能に関するパラメータ」からの出題です。
shared_buffersの値を大きく設定しすぎたことによって、チェックポイント中の問い合わせの性能が低下した。
maintenance_work_memをwork_memよりも大きく設定したことによって、VACUUM処理の性能が低下した。
複数のセッションが多量のINSERTを発行したことによって、WALファイルへの書き込みで競合が発生し、INSERTの性能が低下した。
pgstattupleを用いて定期的にタプルレベルの統計情報を取得しなかったため、PostgreSQLが最適な実行計画を作成できずに問い合わせの性能が低下した。
※この例題は実際のOSS-DB技術者認定試験とは異なります。
A. shared_buffersの値を大きくすると、チェックポイント中にディスクに書き出されるデータが増大し、一時的に性能が低下する恐れがあります。
B. maintenance_work_memを大きくするとVACUUMの性能が向上します。work_memより大きな値に設定しても弊害はありませんが、VACUUMプロセスが多重実行されると多重数分のメモリが消費されることに注意が必要です。
C. デフォルトの設定では、INSERT後にCOMMITまたは自動COMMITが発行されて、WALがディスクに記録されるとトランザクションが完了します。記録にはロック機能による順番待ちが発生するため、WALファイルへの書き込みの競合により性能が低下する恐れがあります。
D. pgstattupleモジュールを実行すると、ユーザが確認するための集計済みのタプルレベルの統計情報が取得できます。データベース内で最新の統計情報を集計するにはANALYZEを実行します。
よって正解は、AとCです
今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。
© EDUCO All Rights Reserved.