2013-06-05 62 views
1

我正在運行PostgresSQL 8.3.3。每晚對數據庫進行真空分析。每張桌子大約需要5分鐘才能完成(大或小)。最初這個過程花了現在1/3的時間。在執行真空時,其他數據仍然通過.net窗口服務插入。該服務最近開始記錄連接超時。真空分析運行速度非常慢,導致其他系統超時

有什麼方法可以找出造成真空分析緩慢運行的原因和/或造成超時的原因嗎?我懷疑他們是相關的。

+0

自動真空運行?什麼是'vacuum_cost_delay'設置爲? **爲什麼你仍然在8.3.3 **上? (雖然+1提到了PostgreSQL版本)。 –

+0

http://www.postgresql.org/docs/8.3/static/runtime-config-autovacuum.html –

+0

Autovacuum已禁用。 – Ian

回答

3

那麼,版本8.3是生命週期結束,因此無論如何你都要儘快升級。

該版本支持autovacuum,據我可以從文檔中看到,如果配置正確,應該傾向於控制東西。但是,突發事件和/或指數膨脹可能會導致一些問題。

最簡單的解決方案是轉儲數據庫並恢復。如果您可以花時間這樣做,它會在整個過程中打包整個數據庫。然後,對錶/索引大小進行一些常規(每日/每週)的監測。還要在機器上添加一些基本活動的基本監控(cpu /內存/磁盤)。

如果需要,您可以採取糾正措施,使用REINDEXCLUSTER

如果您一次在一張桌上運行VACUUM VERBOSE,您將看到一些關於哪些磁盤頁被使用/可以被釋放/不能被釋放的統計信息。如果有問題應該很明顯。

最後,請花點時間在方便的地方規劃升級。最新版本是9.2,包含許多性能和管理方面的改進。

+1

8.3的自動清理是非常原始的,並且經常需要來自額外的真空cron作業的幫助才能跟上。而且,它們不僅僅是8.3版本,它們是8.3版本的一個古老的補丁版本,這是幾年,許多修補程序已過時。 –

+0

我會嘗試一下,並像你今晚建議的那樣恢復。如果解決了這個問題,我會盡快發佈。升級計劃在今年夏天進行。 – Ian

+1

記住 - 檢查以檢查文件大小和系統負載今天下午,所以你有一些東西比較後,恢復。 –

相關問題