3

PostgresSQL 8.3.3 を実行しています。毎晩、データベースに対して真空分析が実行されます。すべてのテーブルが完了するまでに約 5 分かかります (大小を問わず)。当初、このプロセスにかかった時間は現在の 1/3 でした。バキュームが実行されている間、.net Windows サービスを介して他のデータがまだ挿入されています。このサービスは最近、接続タイムアウトのログ記録を開始しました。

真空分析の実行が遅い原因および/またはタイムアウトの原因を突き止める方法はありますか? 私はそれらが関連していると疑っています。

4

1 に答える 1

4

バージョン 8.3 はサポートが終了しているため、とにかく都合のよいときにすぐにアップグレードすることをお勧めします。

ドキュメントからわかる限り、そのバージョンは自動バキュームをサポートしており、正しく構成されていれば、物事を制御し続ける傾向があります。ただし、バースト アクティビティやインデックスの肥大化が原因で問題が発生している可能性があります。

最も簡単な解決策は、データベースをダンプして復元することです。時間に余裕がある場合は、そのプロセスでデータベース全体をパックします。次に、テーブル/インデックスのサイズを定期的に (毎日/毎週) 監視します。また、マシンの一般的なアクティビティ (CPU / メモリ / ディスク) の基本的な監視を追加します。

必要に応じて、 REINDEXまたはCLUSTERを使用して是正措置を講じることができます。

一度に 1 つのテーブルでVACUUM VERBOSEを実行すると、どのディスク ページが使用されているか、解放できるか、または解放できないかに関する統計が表示されます。問題があるかどうかは明らかなはずです。

最後に、時間をかけて都合のよい時点でアップグレードを計画してください。最新のリリースは 9.2 で、多くのパフォーマンスと管理の改善が含まれています。

于 2013-06-05T12:52:29.227 に答える