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

时间:2011-05-06 18:04:25

标签: sqlite devart

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

我正在使用SQL Devart ADO.Net data provider

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

2 个答案:

答案 0 :(得分:3)

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

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

PRAGMA freelist_count;
PRAGMA page_size;

答案 1 :(得分:0)

乘以page_count和page_size pragma返回的值可能会很好地估计数据库的大小:

PRAGMA page_count;
PRAGMA page_size;