postgres alter table挂起连接池

时间:2017-03-08 04:52:31

标签: sql database postgresql connection-pooling ddl

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

1 个答案:

答案 0 :(得分:2)

检查视图pg_locks以查看阻止ALTER TABLE阻止哪个并发事务锁定。

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

Postgres Wiki中提供了一组监视锁的语句: