Корректировка битовой карты таблицы

Функция

Определение оператора корректировки битовой карты таблицы.

Спецификация
   

Варианты:

< корректировка битовой карты >::=
CORRECT BITMAP
ON [имя схемы.]имя таблицы FOR {DATA|INDEX|BLOB}
PAGE номер страницы
[FILE номер файла]
[WAIT | NOWAIT]
< корректировка битовой карты >::=
CORRECT BITMAP PAGE < номер страницы битовой карты >
ON [имя схемы.]имя таблицы FOR {DATA|INDEX|BLOB}
FILE номер файла
[WAIT | NOWAIT]
Синтаксические правила
  1. < Номер страницы > задает номер страницы соответствующего файла таблицы:

    • DATA – файла данных;

    • INDEX – индексного файла;

    • BLOB – BLOB-файла.

  2. < Номер файла > задает номер соответствующего файла таблицы. Если не задан, по умолчанию используется значение 1.

  3. < Номер страницы битовой карты > задает номер страницы битовой карты соответствующего файла таблицы.

Общие правила
  1. Команду целесообразно применять в случае возникновения ошибок в битовой карте таблицы при невозможности по какой-либо причине (например, большой объём БД) использовать для устранения ошибки утилиты testdb.

  2. Вариант с опцией CORRECT BITMAP используется при незначительных (единичных) повреждениях битов в битовой карте (в этом случае выполняется корректировка только ошибочных битов).

  3. Вариант с опцией CORRECT BITMAP PAGE используется при значительных (множественных) повреждениях битов в битовой карте (в этом случае выполняется корректировка страниц целиком).

Примеры

Сообщения утилиты testdb и соответствующие им команды корректировки битовой карты:

  1. !Таблица #118, битовая карта файла данных #1, страница #1, бит #20
    !Очищен бит для заполненной страницы
    CORRECT BITMAP ON AUTO FOR DATA PAGE 20;
  2. !Таблица #118, битовая карта файла индексов #1, страница #1, бит #2
    !Установлен бит для незаполненной страницы
    CORRECT BITMAP ON AUTO FOR INDEX PAGE 2;
  3. !Таблица #5, битовая карта файла BLOB #1, страница #1, бит #20
    !Очищен бит для заполненной страницы
    CORRECT BITMAP ON $$$PROC FOR BLOB PAGE 20;

Ошибки типа:

*  Таблица #48, битовая карта файла индексов #2, страница #16, бит #28
*  Очищен бит для страницы, которой нет в файле 

вызваны тем, что, по какой-то причине содержимое 16-ой страницы битовой карты не было очищено от данных индекса (или данные индекса туда были возвращены при откате), после чего с этой страницей велась работа как со страницей битовой карты.

Команда для корректировки:

CORRECT BITMAP PAGE 16 ON < имя таблицы > FOR INDEX FILE 2;

Имя таблицы можно узнать по её системному номеру (48), указанному в сообщении утилиты testdb.