PostgreSQL 9.2についての質問です。
稼働中のシステムで、画面起動で大量のデータをINSERTするPostgreSQLのファンクションがあります。
INSERT対象テーブルは2つあり、各テーブルに登録する件数は、それぞれ最大で400,000件、120,000件ほどです。
また、テーブル内のデータの総件数は変動はありますが、それぞれ、80,000,000件、40,000,000件ほどです。
このファンクション実行後に、ほぼ毎回ユーザからこのテーブルに対する検索が遅いとクレームを受けます。
現在は、先任者の指示に従い、vacuum analyzeを手動で実行しています。
質問1:PostgreSQLの場合、このような運用(INSERT後の検索遅延に対して、システム担当者がvacuum analyzeを手動で実行)は一般的なのでしょうか。
質問2:手動vacuum analyzeを減らす方策として、このファンクションの最後にvacuum analyzeを実行するよう修正せよ、と指示を受けたのですが、
これは妥当な方法なのでしょうか。もっと良い方法があれば教えていただけると大変うれしいです。
補足ですが、autovacuumは有効になっています。
しかし、pg_stat_all_tablesを見ると、問題の2テーブルに対しては、リリース直後の日付にautovacuum、autoanalyzeが実行されたきりでした。
ユーザが画面起動でファンクションを実行して、終わるとすぐに検索するので、autovacuumにはあまり頼れないのかなと自分では考えています。
どうぞよろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/07/30 03:18