Операционная система ЗОСРВ «Нейтрино» > Руководство разработчика > Программные интерфейсы общего назначения > Прикладные библиотеки и технологии > Библиотека менеджера QDB > Справочник по командам SQL, поддерживаемым менеджером QDB > SQL: VACUUM



SQL: VACUUM

Очищает таблицу или индекс

Прототип:

VACUUM [имя_таблицы_или_индекса]

Описание:

Команда VACUUM является расширением QDB, которое было реализовано после создания аналогичной команды в PostgreSQL. Если в команде VACUUM задано имя таблицы или индекса, она очищает соответствующую таблицу или индекс. Указывать имя индекса или таблицы не обязательно.

После удаления объекта (таблицы, индекса или триггера) в базе данных остается свободное место, которое увеличивает размер файла базы данных, но ускоряет выполнение операций вставки. С течением времени вставка и удаление приводят к фрагментации структуры файла базы данных и замедлению доступа к его содержимому.

Команда VACUUM очищает главную базу данных, копируя ее содержимое во временный файл и загружая файл исходной базы данных из копии. При этом оптимизируется структура файла базы данных: удаляются свободные страницы, данные таблиц размещаются в непрерывных областях и др. Очистка присоединенных баз данных не поддерживается.

Команда VACUUM завершается с ошибкой, если на момент ее запуска выполняется транзакция, и не воздействует на базу данных, которая находится в оперативной памяти.

Вместо команды VACUUM можно использовать режим автоматической очистки. Автоматическая очистка включается и отключается путем установки и сброса флага auto_vacuum с помощью нестандартной SQL-команды PRAGMA:

qdb_statement( &db, "PRAGMA auto_vacuum = 1;" ); /* включение */
qdb_statement( &db, "PRAGMA auto_vacuum = 0;" ); /* отключение */

Тематические ссылки:

qdb_vacuum(), SQL: PRAGMA

Выражения в SQL запросах, Ключевые слова, поддерживаемые QDB




Предыдущий раздел: перейти