Тестирование таблицы

Функция

Проверка структуры таблицы.

Спецификация
         
< тестирование таблицы >::=
TEST TABLE [имя схемы.]имя таблицы [операция тестирования] [FULL]
[WAIT | NOWAIT] [NO LONG {QUANT | QUANTUM}]
< тестирование одностолбцового индекса >::=
< тестирование именованного индекса >::=
< тестирование элементов структуры >::=
< элемент структуры >::=
DESCRIPTION | BITMAP | DATA | INDEX | BLOB | INTEGRITY
Синтаксические правила
  1. QUANTUM является синонимом QUANT.

  2. При указании опции NO LONG QUANT тестирование таблицы выполняется в фоновом режиме (даже при отсутствии других активных процессов в ядре СУБД). Если опция не задана, по умолчанию используется конкурирующий (квантуемый с другими процессами обработки данных) режим тестирования.

  3. Модификатор WAIT заставляет СУБД ЛИНТЕР ожидать завершения процедуры тестирования.

  4. Если модификатор WAIT (NOWAIT) не задан, по умолчанию действует WAIT.

  5. При указании опции FULL без указания < операции тестирования > выполняется полное тестирование индексов указанной таблицы (соответствует уровню проверки 3 testdb). Также включает проверки отсутствия дубликатов в AUTOINC-столбцах (если они не PRIMARY KEY и не UNIQUE) – по умолчанию не выполняются.

    Без опции FULL тестирование индексов указанной таблицы соответствует уровню проверки 2 testdb.

  6. При указании конструкции COLUMN < имя столбца > INDEX FULL выполняется полное тестирование индекса на указанный столбец (соответствует уровню проверки 3 testdb), без FULL соответствует уровню проверки 2 testdb.

  7. При указании конструкции INDEX {< имя индекса > | < имя столбца >} FULL выполняется полное тестирование индекса c указанным именем (соответствует уровню проверки 3 testdb), без FULL соответствует уровню проверки 2 testdb.

  8. Опцию FULL нельзя указывать для тестирования < элемента структуры >.

  9. < Имя таблицы > должно ссылаться на базовую таблицу.

  10. < Имя таблицы > не должно ссылаться на системную таблицу.

  11. < Имя таблицы > не должно ссылаться на виртуальную таблицу ($$$CHAN, $$$SYSINFO, $$$EVENTS_INFO).

  12. Правом на тестирование таблицы обладает ее владелец или любой другой пользователь с привилегией на модификацию структуры таблицы (ALTER) и уровнем прав доступа к БД RESOURCE.

  13. На время тестирования таблица блокируется в режиме SHARE.

    test table auto column personid index;
  14. Опции тестирования элементов структуры:

    • DESCRIPTION – тестирование системного описания таблицы;

    • BITMAP – тестирование битовых карт файлов таблицы;

    • DATA – тестирование файла данных;

    • INDEX – тестирование файла индексов;

    • BLOB – тестирование BLOB-файлов;

    • INTEGRITY – тестирование логической целостности;

    • если конкретный < элемент структуры > тестирования не задан, по умолчанию тестируются все элементы таблицы:

      test table auto;

      эквивалентно:

      test table auto (description, bitmap, data, index, blob, integrity);
    • Результат выполнения тестирования:

      1. при отсутствии ошибок в физической и логической структуре таблицы диагностические сообщения выведены не будут;

      2. при наличии ошибок в физической и логической структуре таблицы будет выведена диагностическая информация в формате:

        |SEVERITY|TYPE|DESCRIPTION|

        Например,

        |SEVERITY | TYPE                                                | DESCRIPTION
        |WARNING  | Table #2503 data file #1 bitmap, page #1, bit #6216 | Bit is set for page which is not filled, has only 0 bytes

        Восстановление таблицы необходимо выполнять с помощью утилиты testdb (см. документ «СУБД ЛИНТЕР. Тестирование базы данных», пункт «Исправление БД»).