63.4. Карта видимости
Каждое отношение таблицы имеет карту видимости (Visibility Map, VM) для отслеживания страниц, содержащих только строки, которые видны всем активным транзакциям. Она хранится вместе с данными главного отношения в отдельном файле, имя которого образуется номером файлового узла отношения с суффиксом _vm
. Например, если файловый узел отношения — 12345, VM хранится в файле 12345_vm
, в том же самом каталоге, что и основной файл отношения. Заметьте, что индексы не имеют VM.
Карта видимости просто хранит по одному биту на страницу таблицы. Установленный бит означает, что все строки страницы видны всем транзакциям. Это значит, что страница не содержит строк, которые необходимо очистить. Эта информация может также использоваться операциями сканирования индекса без обращения к таблице, чтобы получить результат запроса, используя только индексные строки.
Карта может отражать реальные данные с запаздыванием в том смысле, что мы уверены, что в случаях, когда установлен бит, известно, что условие верно, но если бит не установлен, оно может быть верным или неверным. Биты карты видимости устанавливаются только при очистке, а сбрасываются при любых операциях, изменяющих данные на странице.