Каков метод очистки базы данных в SQlite? - PullRequest
15 голосов
/ 01 июня 2011

Поскольку я использую Sqlite для своих малых приложений, я всегда использую sqliteadmin для использования своей базы данных cleanup для удаления ненужных данных из моей базы данных.

ТеперьЯ хочу создать метод в моем приложении, который делает так же, как sqliteadmin CleanUp .

Как это сделать?

Спасибо в отношении

Ответы [ 3 ]

33 голосов
/ 02 июня 2011
using (SQLiteCommand command = m_connection.CreateCommand())
{
    command.CommandText = "vacuum;";
    command.ExecuteNonQuery();
} 

вот точный ответ о том, как выполнить вакуум.

15 голосов
/ 01 июня 2011

Кажется, вы ищете оператор VACUUM .

2 голосов
/ 02 декабря 2013

Интересный пост сценария.Оператор Vacuum в SQLite копирует всю базу данных во временный файл для восстановления.Если вы планируете делать это «по требованию» через пользователя или какой-либо процесс, может потребоваться значительное количество дискового пространства и времени для завершения, когда ваша база данных станет больше 100 МБ, особенно если вы смотрите на несколько ГБ.В этом случае вам лучше использовать AUTO_VACUUM = true прагматический оператор при создании базы данных и просто удалять записи вместо запуска VACUUM.Пока что это единственное преимущество, которое я могу найти в SQL Server Compact по сравнению с SQLite.По требованию SHRINK базы данных Sql Server Compact чрезвычайно быстр по сравнению с вакуумом SQLite.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...