在每一步之间查询 pg_stat_reset 和 pg_stat_user_tables
querying pg_stat_reset and pg_stat_user_tables between every step
在我的 Java 批次中,我想在每个步骤后从 pg_stat_user_tables
收集数据。
例如,我想从pg_stat_user_tables
.
收集每个步骤的每个table的顺序扫描数
我在 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
但是从 tables 收集的统计数据并不统一,并且经常出现在较晚的步骤中(第 2 步中扫描的 tables 出现在从第 3 步或更高版本收集的数据中) .
pg_stat_user_tables
和pg_stat_xact_user_tables
是否包含实时数据?
是我做错了什么,还是无法为每个小步骤收集实时数据?
统计信息不会实时更新,而是由统计信息收集器进程异步收集和更新。
如果那是为了调试目的,也许您可以在每一步之后等待几秒钟,那么您很有可能获得当前的统计信息。
对于生产用途,我看不出在每个步骤后收集统计信息的意义。
在我的 Java 批次中,我想在每个步骤后从 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
但是从 tables 收集的统计数据并不统一,并且经常出现在较晚的步骤中(第 2 步中扫描的 tables 出现在从第 3 步或更高版本收集的数据中) .
pg_stat_user_tables
和pg_stat_xact_user_tables
是否包含实时数据?
是我做错了什么,还是无法为每个小步骤收集实时数据?
统计信息不会实时更新,而是由统计信息收集器进程异步收集和更新。
如果那是为了调试目的,也许您可以在每一步之后等待几秒钟,那么您很有可能获得当前的统计信息。
对于生产用途,我看不出在每个步骤后收集统计信息的意义。