小巧、快速、可靠。
三選一。

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」必須是其中一個 掃描狀態選項,否則此介面的行為未定義。請求的測量值會寫入「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()

另請參閱 物件常數函式 列表。