2017-03-08 61 views
0

执行简单的alter table add列挂起,这可能是由于我的应用程序使用连接池打开连接并可能锁定表。有没有办法在应用程序仍在运行的时候仍然可以在postgres中执行alter table命令?postgres alter table挂起连接池

回答

1

检查视图pg_locks以查看哪个并发事务处理锁定块ALTER TABLE

如果您的连接池保持挂起状态“在事务”(检查pg_stat_activity)中处于空闲状态,则连接池或应用程序中存在错误。你应该解决这个问题,因为它也会导致其他问题,比如表格膨胀,因为VACUUM不能完成它的工作。

语句来监控锁的集合,可在Postgres的维基: