小巧、快速、可靠
任選三項
SQLITE_STMT 虛擬表格

1. 概觀

SQLITE_STMT 擴充套件實作了一個 同名專用虛擬表格,提供與 已準備好的陳述式 相關的所有 資料庫連線 的資訊。

SQLITE_STMT 擴充套件包含在 合併 中,但預設為停用。使用 SQLITE_ENABLE_STMTVTAB 編譯時期選項來啟用 SQLITE_STMT 擴充套件。SQLITE_STMT 擴充套件也可以在執行時期載入,方法是使用 https://sqlite.dev.org.tw/src/file/ext/misc/stmt.c 的原始碼將擴充套件編譯成共用函式庫或 DLL,並遵循 編譯可載入擴充套件 的說明。

SQLITE_STMT 擴充套件在 命令列外殼 的預設建置中啟用。

2. 用法

SQLITE_STMT 虛擬表格是一個唯讀表格,可以直接查詢以存取目前資料庫連線中所有已準備好陳述式的資訊。例如

SELECT * FROM sqlite_stmt;

在呼叫 sqlite3_close() 之前,可以立即執行上述陳述式,以確認所有已準備好的陳述式都已 完成,並協助識別和追蹤已「外洩」且未完成的已準備好陳述式。

SQLITE_STMT 虛擬表格也可以用於存取已準備好陳述式的效能資訊,以協助最佳化應用程式。例如,若要找出從未使用過的 已準備好陳述式 使用了多少記憶體,可以執行

SELECT sum(mem) FROM sqlite_stmt WHERE run=0;

2.1. 欄位

SQLITE_STMT 虛擬表格提供的欄位由下列假設的 CREATE TABLE 陳述摘要

CREATE TABLE sqlite_stmt(
  sql    TEXT,    -- Original SQL text
  ncol   INT,     -- Number of output columns
  ro     BOOLEAN, -- True for "read only" statements
  busy   BOOLEAN, -- True if the statement is current running
  nscan  INT,     -- Number of full-scan steps
  nsort  INT,     -- Number of sort operations
  naidx  INT,     -- Number of automatic index inserts
  nstep  INT,     -- Number of byte-code engine steps
  reprep INT,     -- Number of reprepare operations
  run    INT,     -- Number of times this statement has been run
  mem    INT      -- Heap memory used by this statement
);

未來版本可能會新增新的輸出欄位,並可能會變更舊有欄位的順序。下列提供有關 SQLITE_STMT 虛擬表格中每個欄位意義的詳細資料

此頁面最後修改於 2022-01-08 05:02:57 UTC