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

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
#define SQLITE_SCANSTAT_PARENTID 6
#define SQLITE_SCANSTAT_NCYCLE   7

以下常量可用于 sqlite3_stmt_scanstatus(S,X,T,V) 接口的 T 参数。每个常量指定了 sqlite3_stmt_scanstatus() 返回的不同指标。

当返回给 V 的值为字符串时,保存该字符串的空间由预编译语句 S 管理,并在 S 结束时自动释放。

并非所有值都适用于所有查询元素。当某个值不可用时,如果该值是数值,则输出变量设置为 -1;如果该值是字符串(SQLITE_SCANSTAT_NAME),则设置为 NULL。

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_SELECTID
V 参数指向的“int”变量将设置为第 X 个查询计划元素的 ID。ID 值在语句中是唯一的。选择 ID 与 EXPLAIN QUERY PLAN 查询第一列输出的值相同。

SQLITE_SCANSTAT_PARENTID
V 参数指向的“int”变量将设置为当前查询元素的父元素的 ID(如果适用),或者如果查询元素没有父元素则设置为零。这与 EXPLAIN QUERY PLAN 查询第二列返回的值相同。

SQLITE_SCANSTAT_NCYCLE
sqlite3_int64 输出值设置为在处理查询元素期间经过的周期数,根据处理器时间戳计数器。此值并非所有查询元素都可用 - 如果不可用,则输出变量设置为 -1。

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