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

SQLite C 接口

预处理语句扫描状态

int sqlite3_stmt_scanstatus(
  sqlite3_stmt *pStmt,      /* Prepared statement for which info desired */
  int idx,                  /* Index of loop to report on */
  int iScanStatusOp,        /* Information desired.  SQLITE_SCANSTAT_* */
  void *pOut                /* Result written here */
);
int sqlite3_stmt_scanstatus_v2(
  sqlite3_stmt *pStmt,      /* Prepared statement for which info desired */
  int idx,                  /* Index of loop to report on */
  int iScanStatusOp,        /* Information desired.  SQLITE_SCANSTAT_* */
  int flags,                /* Mask of flags defined below */
  void *pOut                /* Result written here */
);

这些接口返回有关 pStmt 的预测和测量性能的信息。高级应用程序可以使用此接口比较预测和测量的性能,并在发现差异时发出警告和/或重新运行 ANALYZE

由于预计此接口很少使用,因此仅在使用 SQLITE_ENABLE_STMT_SCANSTATUS 编译时选项编译 SQLite 时才可用。

"iScanStatusOp" 参数确定要返回哪些状态信息。"iScanStatusOp" 必须是 scanstatus 选项 之一,否则此接口的行为未定义。请求的测量结果将写入由 "pOut" 参数指向的变量中。

"flags" 参数必须传递一个标志掩码。目前仅定义了一个标志 - SQLITE_SCANSTAT_COMPLEX。如果指定了 SQLITE_SCANSTAT_COMPLEX,则所有 "EXPLAIN QUERY PLAN" 输出报告的查询计划元素的状态信息都可用。如果未指定 SQLITE_SCANSTAT_COMPLEX,则仅查询计划元素对应于查询循环("EXPLAIN QUERY PLAN" 输出的 "SCAN..." 和 "SEARCH..." 元素)可用。调用 API sqlite3_stmt_scanstatus() 等效于使用零填充的 flags 参数调用 sqlite3_stmt_scanstatus_v2()。

"idx" 参数标识要检索其统计信息的特定查询元素。查询元素从零开始编号。值 -1 可以查询有关整个查询的统计信息。如果 idx 超出范围 - 小于 -1 或大于或等于实现语句使用的查询元素总数 - 则返回非零值,并且 pOut 指向的变量保持不变。

另请参阅:sqlite3_stmt_scanstatus_reset()

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