Очищает таблицу или индекс
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;" ); /* отключение */
Выражения в SQL запросах, Ключевые слова, поддерживаемые QDB
Предыдущий раздел: перейти