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 参数将被忽略。