小巧。快速。可靠。
三选二。

SQLite C 接口

数据库连接的状态参数

#define SQLITE_DBSTATUS_LOOKASIDE_USED       0
#define SQLITE_DBSTATUS_CACHE_USED           1
#define SQLITE_DBSTATUS_SCHEMA_USED          2
#define SQLITE_DBSTATUS_STMT_USED            3
#define SQLITE_DBSTATUS_LOOKASIDE_HIT        4
#define SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE  5
#define SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL  6
#define SQLITE_DBSTATUS_CACHE_HIT            7
#define SQLITE_DBSTATUS_CACHE_MISS           8
#define SQLITE_DBSTATUS_CACHE_WRITE          9
#define SQLITE_DBSTATUS_DEFERRED_FKS        10
#define SQLITE_DBSTATUS_CACHE_USED_SHARED   11
#define SQLITE_DBSTATUS_CACHE_SPILL         12
#define SQLITE_DBSTATUS_MAX                 12   /* Largest defined DBSTATUS */

这些常量是可以作为 sqlite3_db_status() 接口的第二个参数传递的可用整数“动词”。

SQLite 的未来版本可能会添加新的动词。现有的动词可能会被弃用。应用程序应该检查 sqlite3_db_status() 的返回值,以确保调用成功。如果调用了已弃用或不支持的动词,sqlite3_db_status() 接口将返回一个非零错误代码。

SQLITE_DBSTATUS_LOOKASIDE_USED
此参数返回当前已签出的备用内存槽的数量。

SQLITE_DBSTATUS_LOOKASIDE_HIT
此参数返回使用备用内存满足的 malloc 尝试次数。只有高水位值才有意义;当前值始终为零。

SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE
此参数返回可能可以使用备用内存满足但由于请求的内存量大于备用槽大小而失败的 malloc 尝试次数。只有高水位值才有意义;当前值始终为零。

SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL
此参数返回可能可以使用备用内存满足但由于所有备用内存都已在使用而失败的 malloc 尝试次数。只有高水位值才有意义;当前值始终为零。

SQLITE_DBSTATUS_CACHE_USED
此参数返回与数据库连接关联的所有页面缓存使用的堆内存的大致字节数。与 SQLITE_DBSTATUS_CACHE_USED 关联的高水位标记始终为 0。

SQLITE_DBSTATUS_CACHE_USED_SHARED
此参数类似于 DBSTATUS_CACHE_USED,不同之处在于,如果页面缓存由两个或多个连接共享,则该页面缓存使用的堆内存字节将平均分配给连接的连接。换句话说,如果与数据库连接关联的任何页面缓存都没有共享,则此请求返回与 DBSTATUS_CACHE_USED 相同的值。或者,如果一个或多个页面缓存已共享,则此调用返回的值将小于 DBSTATUS_CACHE_USED 返回的值。与 SQLITE_DBSTATUS_CACHE_USED_SHARED 关联的高水位标记始终为 0。

SQLITE_DBSTATUS_SCHEMA_USED
此参数返回用于存储与连接关联的所有数据库(主数据库、临时数据库以及任何 ATTACH 的数据库)的架构的堆内存的大致字节数。即使由于启用了 共享缓存模式 而导致架构内存与其他数据库连接共享,也会报告架构使用的全部内存量。与 SQLITE_DBSTATUS_SCHEMA_USED 关联的高水位标记始终为 0。

SQLITE_DBSTATUS_STMT_USED
此参数返回与数据库连接关联的所有预处理语句使用的堆内存和备用内存的大致字节数。与 SQLITE_DBSTATUS_STMT_USED 关联的高水位标记始终为 0。

SQLITE_DBSTATUS_CACHE_HIT
此参数返回发生的页面缓存命中次数。与 SQLITE_DBSTATUS_CACHE_HIT 关联的高水位标记始终为 0。

SQLITE_DBSTATUS_CACHE_MISS
此参数返回发生的页面缓存未命中次数。与 SQLITE_DBSTATUS_CACHE_MISS 关联的高水位标记始终为 0。

SQLITE_DBSTATUS_CACHE_WRITE
此参数返回已写入磁盘的脏缓存条目的数量。具体来说,在 wal 模式数据库中写入 wal 文件的页面数,或在回滚模式数据库中写入数据库文件的页面数。作为事务回滚或数据库恢复操作的一部分写入的任何页面都不包括在内。如果在将页面写入磁盘时发生 IO 或其他错误,则对后续 SQLITE_DBSTATUS_CACHE_WRITE 请求的影响未定义。与 SQLITE_DBSTATUS_CACHE_WRITE 关联的高水位标记始终为 0。

SQLITE_DBSTATUS_CACHE_SPILL
此参数返回由于页面缓存溢出而导致在事务中间写入磁盘的脏缓存条目的数量。如果事务一次写入磁盘,则效率更高。当页面在事务中间溢出时,会引入额外的开销。此参数可用于帮助识别可以通过增加缓存大小来解决的效率低下问题。

SQLITE_DBSTATUS_DEFERRED_FKS
当且仅当所有外键约束(延迟或立即)都已解决时,此参数返回当前值的零。高水位标记始终为 0。

另请参阅 对象常量函数 列表。