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文件的页数,或者rollback模式数据库写入数据库文件的页数。不包括作为事务回滚或数据库恢复操作的一部分写入的任何页面。如果在将页面写入磁盘时发生 IO 或其他错误,则对后续 SQLITE_DBSTATUS_CACHE_WRITE 请求的影响是不确定的。与 SQLITE_DBSTATUS_CACHE_WRITE 关联的高水位标记始终为 0。
- SQLITE_DBSTATUS_CACHE_SPILL
- 该参数返回由于页面缓存溢出而在事务中间写入磁盘的脏缓存条目数。如果一次将事务全部写入磁盘,则事务效率更高。当页面在事务处理过程中溢出时,会引入额外的开销。此参数可用于帮助识别可以通过增加高速缓存大小来解决的低效问题。
- SQLITE_DBSTATUS_DEFERRED_FKS
- 当且仅当所有外键约束(延迟的或立即的)都已解决时,此参数为当前值返回零。高水位标记始终为 0。