您可以採用多種方式來提高 PostgreSQL 資料庫的效能。
下面兩個參數可以控制自動 vacuum 作業,依預設,這兩個參數在 Sentinel Rapid Deployment 伺服器安裝期間會被註釋,而您必須移除註釋並設定相應的值。
vacuum_cost_delay︰ 決定當超出成本限制時程序休眠的時間長度。例如,您可以將此值設定為 100。
vacuum_cost_limit︰ 決定導致 vacuum 程序休眠的累積成本。例如,您可以將此值設定為 10000。
如果將這兩個參數的值設定為非零值,則可以降低 vacuum 與 analyze 指令對一般資料庫活動造成的 I/O 影響。執行報告時,它們對效能造成的影響可以忽略不計,因為 vacuum 所需的時間比以往長。
依預設,autovacuum 程序設定為 true,並且會定期執行以恢復磁碟空間及更新規劃器統計資料。隨著資料庫大小的增加,autovacuum 將無法維護保存所有資料庫物件。在此情況下,如果效能較慢,請以 cron 工作的形式執行 AnalyzePartitions.sh 程序檔。此 cron 工作應由擁有 Sentinel Rapid Deployment 程序的使用者進行設定。
例如︰
30 11 * * * $ESEC_HOME/bin/AnalyzePartitions.sh
其中:
30 為分鐘時間。
11 為小時時間。
ESEC_HOME 為資料庫的絕對路徑。
在此範例中,程序檔於每日 11:30 執行。
避免將歸檔排程在報告作業期間執行。如果同時排程這兩個程序,報告將因 PostgreSQL 錯誤而進入等待狀態,並將在歸檔工作完成後才開始處理資料。此變更會影響資料庫的效能。