问题描述
|
根据我在小型应用程序中使用sqlite的经验,我总是使用sqliteadmin来使用其数据库清理功能来删除数据库上不必要的数据。
现在,我想在我的应用程序中创建一个与sqliteadmin CleanUp相同的方法。
这该怎么做?
在此致谢
解决方法
似乎您正在寻找VACUUM语句。
,
using (SQLiteCommand command = m_connection.CreateCommand())
{
command.CommandText = \"vacuum;\";
command.ExecuteNonQuery();
}
这是如何执行真空的确切答案。
, 有趣的帖子脚本。 SQLite中的Vacuum语句将整个数据库复制到临时文件中以进行重建。如果您打算通过用户或某些过程“按需”执行此操作,则一旦数据库达到100MB以上,就可能需要相当多的磁盘空间和时间来完成,尤其是当您查看几个GB时。在这种情况下,最好在创建数据库时使用AUTO_VACUUM = true编译指示,而只删除记录而不是运行VACUUM。到目前为止,这是我发现SQL Server Compact优于SQLite的唯一优势。与SQLite的真空相比,Sql Server Compact数据库的按需SHRINK极其快。