小巧。快速。可靠。
三选二。
#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。
另请参阅 对象、常量 和 函数 列表。