【问题标题】:What is the Method for Database CleanUp in SQlite?SQlite 中的数据库清理方法是什么?
【发布时间】:2011-09-06 03:13:48
【问题描述】:

根据我在小型应用程序中使用 Sqlite 的经验,我总是使用 sqliteadmin 来使用它的数据库 cleanup 功能来删除我的数据库中不必要的数据。

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

如何做到这一点?

感谢您的问候

【问题讨论】:

    标签: c# sqlite ado.net


    【解决方案1】:
    using (SQLiteCommand command = m_connection.CreateCommand())
    {
        command.CommandText = "vacuum;";
        command.ExecuteNonQuery();
    } 
    

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

    【讨论】:

      【解决方案2】:

      您似乎正在寻找VACUUM 声明。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • 还没有时间尝试,但是这个编译指示看起来不错。但是,由于这不是默认设置,因此应该在此处查看确切的行为:sqlite.org/pragma.html#pragma_auto_vacuum
        • 另外,参数可能不是简单的“true”或“false”,而是“0,1,2,NONE,FULL,INCREMENTAL”。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-30
        • 2013-04-11
        相关资源
        最近更新 更多