postgresql - 在每一步之间查询 pg_stat_reset 和 pg_stat_user_tables
问题描述
在我的 Java Batch 中,我想pg_stat_user_tables
在每个步骤之后收集数据。
例如,我想从pg_stat_user_tables
.
我在java中尝试了这个算法:
call pg_stat_reset()
Step 1
collect pg_stat_user_tables (or pg_stat_xact_user_tables) for Step 1
call pg_stat_reset()
Step 2
collect pg_stat_user_tables (or pg_stat_xact_user_tables) for Step 2
...
call pg_stat_reset()
Step n
collect pg_stat_user_tables (or pg_stat_xact_user_tables) for Step n
但是从表中收集的统计数据并不统一,并且经常出现在后面的步骤中(第 2 步中扫描的表出现在第 3 步或以后的收集数据中)。
是否pg_stat_user_tables
包含pg_stat_xact_user_tables
实时数据?
我做错了什么还是不可能为每个小步骤收集实时数据?
解决方案
统计信息不是实时更新的,而是由统计信息收集器进程异步收集和更新的。
如果这是出于调试目的,也许您可以在每一步之后等待几秒钟,那么您很有可能获得当前的统计信息。
对于生产用途,我看不到在每个步骤之后收集统计数据的意义。
推荐阅读
- javascript - 立即执行动态加载的 JS 脚本
- ios - 是否可以在由 CATiledLayer 支持的 UIView 子类中的 draw(_ rect: CGRect) 函数中在矩形边界之外绘制一条线?
- c# - 数据库恢复联机后连接请求超时
- java - 如何让 Firebase 电话身份验证适用于我的应用?
- python - 使用 LFU 设计缓存服务器以减少数据库负载
- python - 在 TensorFlow Lite 中运行 Keras 模型时的不同预测
- git - 为什么标签以分离状态进入 gitlab?
- c# - C#中的乘法
- c# - 如何将链接到mysql表的列表框的选定项的相应值显示到文本框
- python - Pandas:使用布尔掩码替换多列的值