【问题标题】:How can I determine the database usage of a SQLite database?如何确定 SQLite 数据库的数据库使用情况?
【发布时间】:2011-05-06 18:04:25
【问题描述】:

在 SQLite 中,数据库文件的大小是数据库的整体大小,但这不一定是实际使用空间的正确指示。如果数据被删除,释放的空间不会返回给操作系统。必须执行 VACUUM 命令对数据库进行碎片整理并将未使用的空间释放回操作系统。

我正在为 SQLite 使用 Devart ADO.Net data provider

有没有办法获取SQLite数据库的实际使用空间?

【问题讨论】:

    标签: sqlite devart


    【解决方案1】:

    我找到了一个pragma freelist_count,它根据SQLite documentation 提供了数据库文件中未使用的页数。就数据库文件中的总可用空间而言,这并不精确,因为仍有许多页面被部分填充。

    尽管如此,以下内容仍为我们提供了准确的可用页面计数,足以满足我粗略估计数据库文件中已用空间与可用空间的需求。

    PRAGMA freelist_count;
    PRAGMA page_size;
    

    【讨论】:

      【解决方案2】:

      将 page_count 和 page_size 编译指示返回的值相乘可能会为您提供对 DB 大小的良好估计:

      PRAGMA page_count;
      PRAGMA page_size; 
      

      【讨论】:

      • 我试过了,但这仍然给了我与文件本身相同的大小。根据文档,它为 page_count 声明:“返回数据库文件中的总页数。”。见:sqlite.org/pragma.html#pragma_page_count
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-29
      • 1970-01-01
      • 2011-06-21
      相关资源
      最近更新 更多