Документация по PostgreSQL 9.4.1 | |||
---|---|---|---|
Пред. | Уровень выше | Приложение E. Дополнительно поставляемые модули | След. |
E.22. pageinspect
Модуль pageinspect предоставляет функции, позволяющие исследовать страницы баз данных на низком уровне, что бывает полезно для отладки. Все эти функции могут вызывать только суперпользователи.
E.22.1. Функции
get_raw_page(relname text, fork text, blkno int) returns bytea
Функция
get_raw_page
считывает указанный блок отношения с заданным именем и возвращает копию значения bytea. Это позволяет получить одну согласованную во времени копию блока. В параметре fork нужно передать 'main', чтобы обратиться к основному слою данных, 'fsm' — к карте свободного пространства, 'vm' — к карте видимости, либо 'init' — к слою инициализации.get_raw_page(relname text, blkno int) returns bytea
Упрощённая версия
get_raw_page
для чтения данных из основного слоя. Синоним get_raw_page(relname, 'main', blkno)page_header(page bytea) returns record
Функция
page_header
показывает поля, общие для всех страниц кучи и индекса PostgreSQL.В качестве аргумента ей передаётся образ страницы, полученный в результате вызова
get_raw_page
. Например:test=# SELECT * FROM page_header(get_raw_page('pg_class', 0)); lsn | checksum | flags | lower | upper | special | pagesize | version | prune_xid -----------+----------+--------+-------+-------+---------+----------+---------+----------- 0/24A1B50 | 1 | 1 | 232 | 368 | 8192 | 8192 | 4 | 0
Возвращаемые колонки соответствуют полям в структуре PageHeaderData. За подробностями обратитесь к src/include/storage/bufpage.h.
heap_page_items(page bytea) returns setof record
Функция
heap_page_items
показывает все указатели линейных блоков на странице кучи. Для используемых блоков также выводятся заголовки кортежей. При этом показываются все кортежи, независимо от того, были ли видны они в снимке MVCC в момент копирования исходной страницы.В качестве аргумента ей нужно передать образ страницы кучи, полученный в результате вызова
get_raw_page
. Например:test=# SELECT * FROM heap_page_items(get_raw_page('pg_class', 0));
Описание возвращаемых полей можно найти в src/include/storage/itemid.h и src/include/access/htup_details.h.
bt_metap(relname text) returns record
Функция
bt_metap
возвращает информацию о метастранице индекса-B-дерева. Например:test=# SELECT * FROM bt_metap('pg_cast_oid_index'); -[ RECORD 1 ]----- magic | 340322 version | 2 root | 1 level | 0 fastroot | 1 fastlevel | 0
bt_page_stats(relname text, blkno int) returns record
bt_page_stats
возвращает сводную информацию по единичным страницам B-дерева. Например:test=# SELECT * FROM bt_page_stats('pg_cast_oid_index', 1); -[ RECORD 1 ]-+----- blkno | 1 type | l live_items | 256 dead_items | 0 avg_item_size | 12 page_size | 8192 free_size | 4056 btpo_prev | 0 btpo_next | 0 btpo | 0 btpo_flags | 3
bt_page_items(relname text, blkno int) returns setof record
bt_page_items
возвращает детализированную информацию обо всех элементах на странице B-дерева. Например:test=# SELECT * FROM bt_page_items('pg_cast_oid_index', 1); itemoffset | ctid | itemlen | nulls | vars | data ------------+---------+---------+-------+------+------------- 1 | (0,1) | 12 | f | f | 23 27 00 00 2 | (0,2) | 12 | f | f | 24 27 00 00 3 | (0,3) | 12 | f | f | 25 27 00 00 4 | (0,4) | 12 | f | f | 26 27 00 00 5 | (0,5) | 12 | f | f | 27 27 00 00 6 | (0,6) | 12 | f | f | 28 27 00 00 7 | (0,7) | 12 | f | f | 29 27 00 00 8 | (0,8) | 12 | f | f | 2a 27 00 00
fsm_page_contents(page bytea) returns text
Функция
fsm_page_contents
показывает внутреннюю структуру узла на странице FSM. Она выдаёт текст из нескольких строк, по одной строке на узел двоичного дерева на заданной странице. При этом выдаются только ненулевые узлы. Также выводится так называемый указатель «следующего слота», который указывает на следующий слот, получаемый с этой страницы.Подробнее структура страницы FSM описана в src/backend/storage/freespace/README.
Пред. | Начало | След. |
ltree | Уровень выше | passwordcheck |