Сжатие таблицы

Функция

Сжатие (уплотнение) таблицы и упорядочивание её ROWID после многочисленных операций удаления из нее записей.

Спецификация
   
< сжатие таблицы >::=
PRESS TABLE [имя схемы.]имя таблицы
[WITH TRUNCATE] [WAIT |NOWAIT]
Синтаксические правила
  1. < Имя таблицы > должно ссылаться на базовую таблицу.

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

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

Общие правила
  1. Если таблица имеет столбец AUTOROWID, операция < сжатие таблицы > не допускается.

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

  3. После удаления всех записей и сжатия таблицы для столбцов AUTOINC INT и AUTOINC SMALLINT значение начинает наращиваться от заданного как INITIAL при создании таблицы, а для AUTOINC BIGINT – от 1.

  4. После сжатия таблицы выполняется перестройка индекса.

  5. Если задан модификатор WITH TRUNCATE сжатие пространства БД выполняется по следующим правилам:

    • для файлов данных происходит перенос данных (в пределах своего файла) в начало файла с последующим усечением освободившегося пространства;

    • для файлов индексов происходит удаление индексов путём усечения файлов индексов до минимального размера, затем пересоздание индексов;

    • файлы c BLOB-данными не сжимаются.