2017-03-08 58 views
0

執行簡單的alter table add列掛起,這可能是由於我的應用程序使用連接池打開連接並可能鎖定表。有沒有辦法在應用程序仍在運行的時候仍然可以在postgres中執行alter table命令?postgres alter table掛起連接池

回答

1

檢查視圖pg_locks以查看哪個併發事務處理鎖定塊ALTER TABLE

如果您的連接池保持掛起狀態「在事務」(檢查pg_stat_activity)中處於空閒狀態,則連接池或應用程序中存在錯誤。你應該解決這個問題,因爲它也會導致其他問題,比如表格膨脹,因爲VACUUM不能完成它的工作。

語句來監控鎖的集合,可在Postgres的維基: