SQlite中的数据库清理方法是什么?

时间:2011-06-01 09:21:32

标签: c# sqlite ado.net

正如我在小型应用程序中使用Sqlite所经历的那样,我总是使用 sqliteadmin 来使用其数据库 cleanup 函数来删除数据库中不必要的数据。

现在我想在我的应用程序中创建一个方法,其方法与sqliteadmin CleanUp 相同。

怎么做?

表示感谢

3 个答案:

答案 0 :(得分:32)

using (SQLiteCommand command = m_connection.CreateCommand())
{
    command.CommandText = "vacuum;";
    command.ExecuteNonQuery();
} 

这里是关于如何执行真空的确切答案。

答案 1 :(得分:14)

看来你正在寻找VACUUM声明。

答案 2 :(得分:2)

有趣的帖子脚本。 SQLite中的Vacuum语句将整个数据库复制到临时文件以进行重建。如果您计划通过用户或某个进程执行“按需”操作,则一旦数据库超过100MB,可能需要相当大的磁盘空间和时间才能完成,尤其是在您查看几GB时。在这种情况下,最好在创建数据库时使用AUTO_VACUUM = true pragma语句,而只是删除记录而不是运行VACUUM。到目前为止,这是我发现SQL Server Compact优于SQLite的唯一优势。根据需要,与SQLite的真空相比,Sql Server Compact数据库的SHRINK非常快。