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

SQLite C 接口

预处理语句的状态参数

#define SQLITE_STMTSTATUS_FULLSCAN_STEP     1
#define SQLITE_STMTSTATUS_SORT              2
#define SQLITE_STMTSTATUS_AUTOINDEX         3
#define SQLITE_STMTSTATUS_VM_STEP           4
#define SQLITE_STMTSTATUS_REPREPARE         5
#define SQLITE_STMTSTATUS_RUN               6
#define SQLITE_STMTSTATUS_FILTER_MISS       7
#define SQLITE_STMTSTATUS_FILTER_HIT        8
#define SQLITE_STMTSTATUS_MEMUSED           99

这些预处理器宏定义了整数代码,这些代码命名与sqlite3_stmt_status()接口关联的计数器值。各个计数器的含义如下

SQLITE_STMTSTATUS_FULLSCAN_STEP
这是 SQLite 在表中作为全表扫描的一部分向前推进的次数。此计数器的大数值可能表明可以通过仔细使用索引来提高性能的机会。

SQLITE_STMTSTATUS_SORT
这是发生的排序操作次数。此计数器中的非零值可能表明可以通过仔细使用索引来提高性能的机会。

SQLITE_STMTSTATUS_AUTOINDEX
这是为了帮助联接更快地运行而自动创建的临时索引中插入的行数。此计数器中的非零值可能表明可以通过添加不需要在每次运行语句时重新初始化的永久索引来提高性能的机会。

SQLITE_STMTSTATUS_VM_STEP
如果该数字小于或等于 2147483647,则这是预处理语句执行的虚拟机操作次数。虚拟机操作次数可以用作预处理语句完成的总工作的代理。如果虚拟机操作次数超过 2147483647,则此语句状态代码返回的值未定义。

SQLITE_STMTSTATUS_REPREPARE
这是由于模式更改或可能影响查询计划的绑定参数更改而自动重新生成准备语句的次数。

SQLITE_STMTSTATUS_RUN
这是预处理语句运行的次数。就此计数器而言,一次“运行”是指对sqlite3_step()的一次或多次调用,然后是对sqlite3_reset()的调用。计数器在每个循环的第一次sqlite3_step()调用时递增。

SQLITE_STMTSTATUS_FILTER_HIT
SQLITE_STMTSTATUS_FILTER_MISS
SQLITE_STMTSTATUS_FILTER_HIT 是联接步骤由于布隆过滤器返回未找到而被绕过的次数。相应的 SQLITE_STMTSTATUS_FILTER_MISS 值是布隆过滤器返回找到的次数,因此联接步骤必须按正常方式处理。

SQLITE_STMTSTATUS_MEMUSED
这是用于存储预处理语句的堆内存的大致字节数。此值实际上不是计数器,因此当操作码为 SQLITE_STMTSTATUS_MEMUSED 时,将忽略 sqlite3_stmt_status() 的 resetFlg 参数。

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