Яке значення n_live_tup та n_dead_tup в pg_stat_user_tables


Відповіді:


28

Ці два стовпці є результатом

SELECT pg_stat_get_live_tuples(c.oid) AS n_live_tup
     , pg_stat_get_dead_tuples(c.oid) AS n_dead_tup
FROM   pg_class c;

Представляючи кількість живих та мертвих рядків (кортежів) у таблиці.
Знайдіть ці функції в посібнику .

Мертві рядки видаляються рядками, які згодом будуть використані для нових рядків з INSERTs або UPDATEs (пробіл, а не дані). Деякі мертві рядки (або зарезервоване вільне місце) можуть бути особливо корисними для оновлень HOT (Тільки для Heap), які можуть ефективно використовувати простір на одній сторінці даних. Більше про HOT:

Або мертві рядки можуть бути видалені VACUUM FULL(або звичайними, VACUUMякщо пощастить) або подібними операціями на столі, тим самим скорочуючи фізичну таблицю відповідно.

Щоразу, коли рядок видаляється або оновлюється, стара версія рядка стає непомітною для всіх інших транзакцій, починаючи після здійснення транзакції. Рядок повністю загинув, як тільки не буде більше незапущених старих транзакцій. Це необхідно для того , щоб модель MVCC PostgreSQL обробляла паралельність.

Це лише статистика . Вам потрібно включити збір статистики, postgresql.confякщо ви хочете, щоб вони автоматично оновлювалися. track_countsАле він повинен бути включений за замовчуванням. Майте на увазі, що статистика не оновлюється миттєво. Детальніше про це читайте в посібнику .


Що таке тюлі лише для купи? Коли я видаю SELECT n_live_tup FROM pg_stat_user_tables WHEN relname = 'mytable';Чому він показує нуль? mytableмає 6 рядів.
Маджід Азімі

@MajidAzimi: Я трохи доповнив свою відповідь.
Ервін Брандстеттер

5
@MajidAzimi Якщо ви хочете дізнатися про групу про MVCC та HoT, ознайомтеся з слайдами з презентації Pavan Deolasee на PGCon'08
dbenhur

@dbenhur: Приємне посилання! Презентація дуже добре зроблена і зрозуміла легко.
Ервін Брандстеттер

@dbenhur Здається, посилання зараз мертва.
Ар'є Лейб Таурог
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.