代码之家  ›  专栏  ›  技术社区  ›  geckels1

刷新物化视图最终处于“空闲”状态,并在PostgreSQL中无限期挂起

  •  0
  • geckels1  · 技术社区  · 4 年前

    我在应用程序中使用PostgreSQL v12 DB中的物化视图。该应用程序最初在启动时正确刷新物化视图,并且有一个按钮可以从本质上刷新物化视图。但当按下按钮时,应用程序会挂起,并且不会刷新任何内容。

    我检查了PostgreSQL数据库,当应用程序最初启动并且物化视图正确加载时,会话的状态为“活动”。但稍后刷新时,会话处于“空闲”状态。

    我还查询了“pg\u stat\u activity”,当会话处于“活动”状态时,查询刷新物化视图也处于“活动”状态。但当会话处于“空闲”状态时,查询也处于“空闲”状态。

    当会话和查询处于“空闲”状态时,它们将保持此状态,直到我手动终止会话。发生这种情况时,我可以在初始阶段正确刷新物化视图。然后,当会话和查询处于“空闲”状态并无限期挂起时,也会发生同样的行为。

    你知道为什么会这样吗?我有一种预感,这与挂起的锁或相关交易有关,但不可否认,我不知道如何检查这一点。我还想指出,这不会锁定或影响DB的其余部分。像往常一样,如果你有任何问题,请告诉我。谢谢

    0 回复  |  直到 4 年前