February 13, 2010

Анализ сборки мусора

Запрс выводит статистическую информацию по сборке мусора упорядочивая таблицы по доле мёртвых кортежей в обратном порядке. Наверху оказываются таблицы у которых ситуация со сборкой мусора хуже всего, но тут необходимо помнить про scale factor и другие настройки, т.к. в "топе" скорее всего появятся ещё и таблицы, которые, например, не требуют сборки мусора из-за малого кол-ва записей или не достаточного увеличения таблицы для запуска autovacuum. Также необходимо помнить и учитывать, что отображаемая статистика это данные, накопленные с момента последней очистки статистики.

SELECT
schemaname AS sch,
relname AS tab,
pg_size_pretty(pg_relation_size(relid)) AS size,
n_tup_ins AS ins, n_tup_upd AS upd, n_tup_del AS del,
n_live_tup AS live,
n_dead_tup AS dead,
round(
1.0 * n_dead_tup /
CASE WHEN n_live_tup + coalesce(n_dead_tup) > 0
THEN n_live_tup + coalesce(n_dead_tup)
ELSE NULL END, 3
) AS "d/l",
date_trunc('second', last_vacuum) AS lv,
date_trunc('second', last_autovacuum) AS lav,
date_trunc('second', last_analyze) AS la,
date_trunc('second', last_autoanalyze) AS laa
FROM pg_stat_user_tables
WHERE schemaname IN ('public')
ORDER BY "d/l" DESC NULLS LAST
LIMIT 50;

No comments:

Post a Comment