在 PostgreSQL 上自動執行 ANALYZE?

在 PostgreSQL 上自動執行 ANALYZE?

ANALYZE <table>;除了 cronjob 之外,在 PostgreSQL 12 伺服器上自動運行的最簡單方法是什麼?

我有一個應用程序,每週例行插入數百萬行,大約一個月後,查詢時間變得非常慢,因為正在修改的主表的統計信息已經過時。運行ANALYZE <table>;表格需要幾分鐘並立即修復效能問題,但我認為必須有一個可以進行的設置,以便 PG 伺服器本身自動完成而不是手動完成?

答案1

聽起來您已停用 autovacuum,如果啟用它,則會定期分析所有資料表以更新查詢規劃器的統計資料。

最簡單的解決方案是重新啟用 autovacuum。檢查 postgresql.conf 檔案中的 autovacuum 設定。

答案2

PostgreSQL 有一個內建的 autovavuum,應該啟用並配置它以滿足您的需求。通常您會調整 *autovacuum_vacuum_threshold * 和autovacuum_analyze_threshold根據更改的元組數量啟動所需的行為。

https://www.postgresql.org/docs/current/routine-vacuuming.html#AUTOVACUUM

相關內容