pg_freespacemap
Исследование карты свободного пространства (FSM).
Схема размещения:
ext
.Модуль
pg_freespacemap
предоставляет средства для исследования карты свободного пространства (FSM, Free Space Map). В нем реализованы две перегруженные функции pg_freespace
. Эти функции показывают значение, записанное в карте свободного пространства для данной страницы либо для всех страниц отношения.Тип | Имя | Входные переменные функции | Выходные переменные функции | Описание |
---|---|---|---|---|
Функция | pg_freespace | rel regclass IN, blkno bigint IN | int2 | Возвращает объем свободного пространства на странице для отношения, заданного параметром blkno , согласно FSM |
Функция | pg_freespace | rel regclass IN, blkno OUT bigint, avail OUT int2 | Набор кортежей blkno bigint, avail int2 , по одному кортежу для каждой страницы в отношении | Выдает объем свободного пространства на каждой странице отношения, согласно FSM |
Значения, хранимые в карте свободного пространства, не являются точными. Эти значения округляются до 1/256 величины
BLCKSZ
(до 32 байт со значением BLCKSZ
по умолчанию) и не поддерживаются в актуальном состоянии при каждом добавлении и изменении кортежей.Для индексов отслеживаются только полностью неиспользованные страницы. Вместо оценки объема несвободного пространства, значения отражают, занята страница в целом или свободна.
По умолчанию использование модуля разрешено только суперпользователям и членам роли
pg_stat_scan_tables
. Дать доступ другим можно с помощью GRANT
.-
Пример 1:
SELECT * FROM pg_freespace('foo');
Пример вывода результата запроса:Раскрыть type=sqlblkno | avail -------+------- 0 | 0 1 | 0 2 | 0 3 | 32 4 | 704 5 | 704 6 | 704 7 | 1216 8 | 704 9 | 704 10 | 704 11 | 704 12 | 704 13 | 704 14 | 704 15 | 704 16 | 704 17 | 704 18 | 704 19 | 3648 (20 rows)
-
Пример 2:
SELECT * FROM pg_freespace('foo', 7);
Пример вывода результата запроса:Раскрыть type=sqlpg_freespace -------------- 1216 (1 row)
Дополнительную информацию по поставляемому модулю pg_freespacemap можно получить по ссылке.