Small. Fast. Reliable.
Choose any three.
Виртуальная таблица SQLITE_STMT

1. Обзор

Расширение SQLITE_STMT осуществляет одноименную виртуальную таблицу, которая предоставляет информацию обо всех подготовленных запросах, связанных с соединением с базой данных.

Расширение SQLITE_STMT включено в объединение, хотя это отключено по умолчанию. Используйте выбор времени компиляции SQLITE_ENABLE_STMTVTAB, чтобы позволить расширение SQLITE_STMT. Расширение SQLITE_STMT может также быть загружено во время выполнения, собрав расширение в общую библиотеку или DLL с использованием исходного кода в https://sqlite.org/src/file/ext/misc/stmt.c и следуя инструкциям, как собрать загружаемые расширения.

Расширение 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 обеспечивается ниже: