SQLite C 接口
准备好的语句扫描状态操作码
#define SQLITE_SCANSTAT_NLOOP 0 #define SQLITE_SCANSTAT_NVISIT 1 #define SQLITE_SCANSTAT_EST 2 #define SQLITE_SCANSTAT_NAME 3 #define SQLITE_SCANSTAT_EXPLAIN 4 #define SQLITE_SCANSTAT_SELECTID 5
以下常量可用于 sqlite3_stmt_scanstatus(S,X,T,V)接口的 T 参数。每个常量为 sqlite3_stmt_scanstatus() 指定一个不同的指标来返回。
当返回给 V 的值是一个字符串时,保存该字符串的空间由准备好的语句 S 管理,并在 S 完成时自动释放。
- SQLITE_SCANSTAT_NLOOP
- V 参数指向的sqlite3_int64变量将被设置为第 X 次循环运行的总次数。
- SQLITE_SCANSTAT_NVISIT
- V 参数指向的sqlite3_int64变量将设置为第 X 次循环的所有迭代检查的总行数。
- SQLITE_SCANSTAT_EST
- V 参数指向的“double”变量将设置为查询规划器对第 X 次循环每次迭代输出的平均行数的估计。如果查询规划器的估计是准确的,那么这个值将近似于商 NVISIT/NLOOP 并且所有具有相同 SELECTID 的先前循环的这个值的乘积将是当前循环的 NLOOP 值。
- SQLITE_SCANSTAT_NAME
- V 参数指向的“const char *”变量将被设置为一个以零结尾的 UTF-8 字符串,其中包含用于第 X 次循环的索引或表的名称。
- SQLITE_SCANSTAT_EXPLAIN
- V 参数指向的“const char *”变量将被设置为一个以零结尾的 UTF-8 字符串,其中包含 第 X 个循环的EXPLAIN QUERY PLAN描述。
- SQLITE_SCANSTAT_SELECT
- V 参数指向的“int”变量将被设置为第 X 次循环的“select-id”。select-id 标识循环所属的查询或子查询。主查询的 select-id 为零。select-id 与EXPLAIN QUERY PLAN查询 的第一列中输出的值相同。