如何确定 SQLite 数据库的数据库使用情况?

Ela*_*lan 3 sqlite devart

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

我正在使用SQLite 的Devart ADO.Net 数据提供程序。

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

Ela*_*lan 7

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

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

PRAGMA freelist_count;
PRAGMA page_size;
Run Code Online (Sandbox Code Playgroud)