2016-12-10 69 views
9

慢查詢日誌功能,我們看到了很多的COMMIT正在拆卸的多個秒向上來完成我們的生產數據庫。在調查中,這些通常是簡單的交易:取一行,UPDATE該行,COMMIT。在這些特定事務中的SELECTUPDATE不會被記錄爲慢。有什麼我們可以做的,或者我們可以使用的工具來找出這些緩慢提交的原因?我們正在SSD上運行,並且正在流向奴隸,如果這有所幫助的話。調試慢PostgreSQL的9.3的COMMIT

+2

流式複製可能會產生很大的差異。是否啓用了同步複製?如果是這樣,那很容易導致延遲提交。您可以通過暫時禁用同步複製(設置'synchronous_standby_names ='''或設置'synchronous_commit ='local'')來確認這是造成這種情況的原因。 –

+0

這兩個設置都設置爲默認值,根據我的理解,這意味着synchronous_commit已經是有效的「本地」了。 –

+1

嘗試'log_lock_waits = true'來查看您的寫入是否存在爭用。 – teppic

回答

0

Postgres提交是同步的。這意味着他們將等待WAL寫入完成,然後再轉到下一個寫入。您可以在配置文件中調整WAL設置以進行調整。

您可以設置提交水平在會話/用戶級別或數據庫寬,在配置文件中的synchronous_commit以異步的。

在數據庫端。

真空表更新統計信息。這將從您的執行更新中除去死元組,這將會有很多。

VACUUM ANALYZE