ページの先頭行へ戻る
Enterprise Postgres 15 運用ガイド

12.1.1 導入の検討

高速データロード機能は、与えられたCOPY FROMコマンドを並列実行することで、データロード処理の高速化を実現します。PostgreSQLのCOPY FROMコマンドよりも多くのリソースを使用するため、データベースシステムが十分なリソースを利用できない場合は、PostgreSQLのCOPY FROMコマンドよりもロード性能が劣化する場合があります。そのため、事前に以下の観点を考慮することで、有効性を判断してください。

データベースサーバのメモリ量

postgresql.confのshared_buffersの値が小さい場合、データベースサーバの共有メモリにキャッシュされるデータページ数が少なくなります。そのため、複数の並列ワーカによる同一データページへの書き込み処理の排他待ちが多発します。また、データページ数が少ないと、テーブルの拡張頻度が増大します。テーブルの拡張処理中は、テーブルへのアクセスが排他されるため(待機イベント名:extend)、ロード時間が増大します。この場合は、shared_buffersの値を大きくしてください。

参照

待機イベント名は、pg_stat_activityビューのwait_event列に格納されます。待機イベント名の詳細は、“PostgreSQL Documentation”の“The Statistics Collector”の“wait_event Description”を参照してください。

チェックポイント処理の発生頻度

短い間隔でチェックポイント処理が発生するとロード性能が低下します。データロード中に以下のようなメッセージがサーバログに出力された場合は、postgresql.confのmax_wal_sizeやcheckpoint_timeoutに大きな値を設定することで、チェックポイントの発生頻度を減らしてください。

LOG:  checkpoints are occurring too frequently (19 seconds apart)
HINT:  Consider increasing the configuration parameter "max_wal_size".