pageinspect. Исследование страниц баз данных на низком уровне
В исходном дистрибутиве установлено по умолчанию: нет.
Связанные компоненты: отсутствуют.
Схема размещения:
ext
.
Модуль pageinspect
предоставляет функции, которые позволяют исследовать страницы баз данных на низком уровне. Это может быть полезно для отладки.
Описание функций
Функции общего назначения
Функция | Возвращаемое значение | Описание | Аргументы |
---|---|---|---|
get_raw_page (relname TEXT, fork TEXT, blkno INT) | bytea | Считывает указанный блок отношения с заданным именем и возвращает копию значения bytea . Это позволяет получить одну согласованную во времени копию блока | relname – имя отношения;blkno – номер блока отношения;fork – слой:– main — обратиться к основному слою данных;– fsm — к карте свободного пространства;– vm — к карте видимости;– init — к слою инициализации |
get_raw_page (relname TEXT, blkno INT) | bytea | Упрощенная версия get_raw_page для чтения данных из основного слоя. Аналог get_raw_page (relname, 'main', blkno) | relname – имя отношения;blkno – номер блока отношения |
page_header (page BYTEA) | record | Показывает общие для всех страниц кучи и индекса PostgreSQL поля | page – образ страницы, полученный в результате вызова get_raw_page |
page_checksum (page BYTEA, blkno INT4) | smallint | Вычисляет контрольную сумму страницы в заданном блоке. Обеим функциям нужно передавать одинаковые номера, поскольку вычисление контрольной суммы зависит от номера блока | page – образ страницы, полученный в результате вызова get_raw_page ;blkno – номер блока |
fsm_page_contents (page BYTEA) | text | Показывает внутреннюю структуру узла на странице FSM | page – образ стран ицы, полученный в результате вызова get_raw_page |
Функции кучи
Функция | Возвращаемое значение | Описание | Аргументы |
---|---|---|---|
heap_page_items (page BYTEA) | setof record Описание полей можно найти в src/include/storage/itemid.h и src/include/access/htup_details.h (внешние ссылки) | Показывает все указатели линейных блоков на странице кучи. Для используемых блоков также выводятся заголовки всех кортежей, независимо от того, были ли видны они в снимке MVCC в момент копирования исходной страницы | page – образ страницы кучи, полученный в результате вызова get_raw_page |
tuple_data_split (rel_oid OID, t_data BYTEA, t_infomask INTEGER, t_infomask2 INTEGER, t_bits TEXT [, do_detoast BOOL]) | BYTEA[] | Разделяет данные кортежей на атрибуты так, как это происходит внутри сервера | Атрибуты, возвращаемые функцией heap_page_items ;do_detoast = true – полученные атрибуты будут распакованы по мере необходимости; если не задан, подразумевается false |
heap_page_item_attrs (page BYTEA, rel_oid REGCLASS [, do_detoast BOOL]) | setof record | Возвращает неструктурированное содержимое кортежа в виде массива атрибутов, которые могут быть распакованы, если установлен флаг do_detoast . Функция похожа на heap_page_items | page – образ страницы кучи, полученный в результате вызова get_raw_page ;do_detoast = true – полученные атрибуты будут распакованы по мере необходимости; если не задан, подразумевается false |
heap_tuple_infomask_flags (t_infomask INTEGER, t_infomask2 INTEGER) | record | Декодирует значения t_infomask и t_infomask2 , которые возвращает функция heap_page_items , и выдает массивы с именами флагов в понятном виде: один, перечисляющий все флаги по отдельности, а другой — комбинированные.Комбинированные флаги выводятся для тех макросов на уровне исходного кода, в которых объединяются значения нескольких битов, например, HEAP_XMIN_FROZEN .Описания выдаваемых имен флагов можно найти в src/include/access/htup_details.h | Атрибуты, возвращаемые функцией heap_page_items |
Функции для индексов-B-деревьев
Функция | Возвращаемое значение | Описание | Аргументы |
---|---|---|---|
bt_metap (relname TEXT) | record | Выдает информацию о метастранице индекса B-дерево | relname – имя отношения |
bt_page_stats (relname TEXT, blkno INT) | record | Выдает сводную информацию по единичным страницам B-дерева | relname – имя отношения;blkno – номер блока отношения |
bt_page_items (relname TEXT, blkno INT) | setof record | Выдает подробную информацию обо всех элементах на странице индекса B-дерево | relname – имя отношения;blkno – номер блока отношения |
bt_page_items (page BYTEA) | setof record | Выдает подробную информацию обо всех элементах на странице индекса B-дерево | page – страница в виде значения bytea |
Функции для индексов BRIN
Функция | Возвращаемое значение | Описание | Аргументы |
---|---|---|---|
brin_page_type (page BYTEA) | text | Возвращает тип страницы для заданной страницы индекса BRIN или выдает ошибку, если эта страница не является корректной страницей индекса BRIN | page – страница в виде значения bytea |
brin_metapage_info (page BYTEA) | record | Возвращает сведения о метастранице индекса BRIN | page – страница в виде значения bytea |
brin_revmap_data (page BYTEA) | setof tid | Выдает список идентификаторов кортежей со страницы сопоставлений зон индекса BRIN | page – страница в виде значения bytea |
brin_page_items (page BYTEA, index OID) | setof record Возвращаемые столбцы соответствуют полям в структурах BrinMemTuple и BrinValues. Подробн ое описание: src/include/access/brin_tuple.h. | Выдает содержимое, сохраненное в странице данных BRIN | page – страница в виде значения bytea ;index – имя индекса |
Функции для индексов GIN
Функция | Возвращаемое значение | Описание | Аргументы |
---|---|---|---|
gin_metapage_info (page BYTEA) | record | Выдает информацию о метастранице индекса GIN | page – страница в виде значения bytea |
gin_page_opaque_info (page BYTEA) | record | Выдает информацию из непрозрачной области индекса GIN (тип страницы) | page – страница в виде значения bytea |
gin_leafpage_items (page BYTEA) | setof record | Выдает информацию о данных, хранящихся в странице индекса GIN на уровне листьев | page – страница в виде значения bytea |