Сжатие (уплотнение) таблицы и упорядочивание её ROWID
после многочисленных операций удаления из нее записей.
::=
<Имя таблицы>
должно ссылаться на базовую таблицу.
<Имя таблицы>
не должно ссылаться на системную таблицу.
Правом на сжатие таблицы обладает ее владелец или любой другой пользователь с привилегией на модификацию структуры таблицы (ALTER
) и уровнем прав доступа к БД RESOURCE
.
Если таблица имеет столбец AUTOROWID
, операция <сжатие таблицы>
не допускается.
Если не задан модификатор WAIT
(NOWAIT
), по умолчанию используется WAIT
.
После удаления всех записей и сжатия таблицы для столбцов AUTOINC INT
и AUTOINC SMALLINT
значение начинает наращиваться от заданного как INITIAL
при создании таблицы, а для AUTOINC BIGINT
– от 1.
После сжатия таблицы выполняется перестройка индекса.
Если задан модификатор WITH TRUNCATE
сжатие пространства БД выполняется по следующим правилам:
для файлов данных происходит перенос данных (в пределах своего файла) в начало файла с последующим усечением освободившегося пространства;
для файлов индексов происходит удаление индексов путём усечения файлов индексов до минимального размера, затем пересоздание индексов;
файлы c BLOB-данными не сжимаются.