amcheck
Проверка логической целостности структуры отношений.
Схема размещения:
ext
.Модуль
amcheck
содержит функции, которые позволяют проверять логическую целостность структуры отношений. Если нарушения структуры не обнаружены, функции отрабатывают без ошибок.Функции модуля:
bt_index_check
проверяет, соблюдаются ли в целевом индексеB-tree
различные инварианты;bt_index_parent_check
проверяет, соблюдаются ли в целевом объекте, индексеB-tree
, различные инварианты.
Дополнительная фаза проверки добавляется, если для таблицы, связанной с отношением целевого индекса, аргумент
heapallindexed
проверяющих функций равен true
.-
bt_index_check
. Синтаксис:bt_index_check(index regclass, heapallindexed boolean) returns void
Пример вывода результата выполнения запроса:Раскрыть type=sqlSELECT bt_index_check(index => c.oid, heapallindexed => i.indisunique), c.relname, c.relpages FROM pg_index i JOIN pg_opclass op ON i.indclass[0] = op.oid JOIN pg_am am ON op.opcmethod = am.oid JOIN pg_class c ON i.indexrelid = c.oid JOIN pg_namespace n ON c.relnamespace = n.oid WHERE am.amname = 'btree' AND n.nspname = 'pg_catalog' -- Не проверять временные таблицы (они могут относиться к другим сеансам): AND c.relpersistence != 't' -- Функция может выдать ошибку без этих условий: AND c.relkind = 'i' AND i.indisready AND i.indisvalid ORDER BY c.relpages DESC LIMIT 10;
-
bt_index_parent_check
. Синтаксис:bt_index_parent_check(index regclass, heapallindexed boolean) returns void;
Дополнительную информацию по поставляемому модулю amcheck можно получить по ссылке.