запросы pg_stat_reset и pg_stat_user_tables между каждым шагом - PullRequest
0 голосов
/ 14 мая 2018

В моем пакете 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

Но собранные статистические данные из таблиц не являются единообразными и часто появляются на более поздних этапах, чем они должны (таблицы, отсканированные на шаге 2, отображаются в собранных данных с шага 3 или позже).

Содержат ли pg_stat_user_tables и pg_stat_xact_user_tables данные в реальном времени?

Я что-то не так делаю или невозможно собрать данные в реальном времени для каждого маленького шага?

1 Ответ

0 голосов
/ 14 мая 2018

Статистика не обновляется в режиме реального времени, но собирается и обновляется асинхронно процессом сборщика статистики .

Если это для целей отладки, возможно, вы можете подождать пару секундпосле каждого шага у вас есть хорошие шансы получить текущую статистику.

Для производственного использования не вижу смысла собирать статистику после каждого шага.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...