Postgresql

計算對不同表的寫入次數

  • October 25, 2016

我最近在 postgresql 數據庫中為時間點恢復設置了持續存檔,但存檔的增長速度出人意料(每天數十 GB)。數據庫是幾 GB,其中大部分是靜態的。在我看來,我們可能有應用程序的某些部分過於激進地寫入數據庫,可能會頻繁更新大量行,從而導致不必要的磁碟負載。

有什麼方法可以詢問數據庫或分析 WAL 文件,找出哪些表寫入最多(行刪除、添加或更新),最好以字節為單位?這將有助於找出磁碟負載的來源。

此資訊可通過Statistics Collector獲得。

您要查找的資訊儲存在pg_stat_bgwriterpg_stat_database中。也許您還對pg_stat_all_tables中顯示插入、更新或刪除多少元組的值感興趣。

注意統計收集配置一節中列出的配置屬性

所有這些視圖都顯示自實例啟動或自上次pg_stat_reset()呼叫以來的值。

如果您想監控隨時間的變化,您需要對這些視圖進行採樣並將值儲存在某處(例如,文本文件或只是另一個具有時間戳以指示採樣時間的表)。

引用自:https://dba.stackexchange.com/questions/153244