postgresql – pg_stat_activity不会在过程或事务中更新

postgresql – pg_stat_activity不会在过程或事务中更新,第1张

概述我查询pg_stat_activity,但是在我第一次在plpgsql函数体,SERIALIZABLE或REPEATABLE READ事务中查询后,内容似乎保持不变. 为什么pg_stat_activity不遵循plpgsql过程中的READ COMMITTED规则? 我如何获得当前状态?我想在plpgsql中循环查询pg_stat_activity的查询,直到在另一个后端运行的另一个查询完成. 我查询pg_stat_activity,但是在我第一次在plpgsql函数体,SERIAliZABLE或REPEAtable READ事务中查询后,内容似乎保持不变.

为什么pg_stat_activity不遵循plpgsql过程中的READ COMMITTED规则?

我如何获得当前状态?我想在plpgsql中循环查询pg_stat_activity的查询,直到在另一个后端运行的另一个查询完成.

解决方法 Postgresql对pg_stat_activity和pg_stat_replication使用的pg_stat_get_activity()函数使用的数据进行每个后端(每个连接,有效)缓存.

此缓存在提交/回滚时清除,但不会像往常一样在READ COMMITTED中的事务中的每个语句的末尾清除.

您可以使用SELECT pg_stat_clear_snapshot()显式清除它.在PL / Pgsql LOOP的主体内调用它来刷新.

当使用可重复读取或更高隔离时,AFAIK无法在每个语句后要求Postgresql自动刷新.

在源代码中,请参阅pgstat_read_current_status(voID)和pgstat_clear_snapshot(voID).

总结

以上是内存溢出为你收集整理的postgresql – pg_stat_activity不会在过程或事务中更新全部内容,希望文章能够帮你解决postgresql – pg_stat_activity不会在过程或事务中更新所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1160245.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存