pg_stat_reset();
SELECT
schemaname,
relname,
idx_scan
FROM
pg_catalog.pg_stat_sys_tables
WHERE
schemaname = 'pg_catalog'
ORDER BY
relname;
SELECT
schemaname,
relname,
idx_scan
FROM
pg_catalog.pg_stat_sys_tables
WHERE
schemaname = 'pg_toast'
ORDER BY
relname;
Почему для pg_toast счетчики сбрасываются, а для pg_catalog (для части таблиц) нет, точнее сбрасываются не до нуля?
Мей би pg_stat_reset () → void Resets all statistics counters for the current database to zero.
Можно написать что-то вроде: \c postgres SELECT pg_stat_reset(); \c db1 SELECT pg_stat_reset(); \c template0 SELECT pg_stat_reset(); \c template1 SELECT pg_stat_reset(); SELECT schemaname, relname, idx_scan FROM pg_catalog.pg_stat_sys_tables WHERE schemaname = 'pg_catalog' ORDER BY relname; И будет тоже самое, так что не похоже
schemaname | relname | idx_scan ------------+--------------------+---------- pg_catalog | pg_auth_members | 29 pg_catalog | pg_authid | 48920406 pg_catalog | pg_database | 56615548 pg_catalog | pg_db_role_setting | 74786191 pg_catalog | pg_shdepend | 614 pg_catalog | pg_shdescription | 1 pg_catalog | pg_shseclabel | 1 pg_catalog | pg_tablespace | 6289733
имхо это больше похоже на какую-то багу, ожидаемое поведение от pg_stat_reset - она должна вычищать стату и по системным объектам в том числе. Ну или в pg_stat_reset_shared нужен доп. ключ который должен указывать сброс для каталога. Если не лень, зарепортите это в pgsql-bugs.
Обсуждают сегодня