【问题标题】:postgres alter table hangs with connection poolingpostgres alter table 因连接池而挂起
【发布时间】:2017-03-08 04:52:31
【问题描述】:

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

【问题讨论】:

    标签: sql database postgresql connection-pooling ddl


    【解决方案1】:

    检查视图pg_locks 以查看哪个并发事务持有锁定ALTER TABLE 的块。

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

    Postgres Wiki 中提供了一组用于监控锁的语句:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-06
      • 2011-03-15
      • 1970-01-01
      • 1970-01-01
      • 2011-05-09
      • 2021-08-14
      • 2021-10-05
      • 2017-10-31
      相关资源
      最近更新 更多