![]() |
|
|||
WebMoney: WMZ Z294115950220 WMR R409981405661 WME E134003968233 |
Visa 4274 3200 2453 6495 |
Расширение SQLITE_STMT осуществляет
одноименную виртуальную таблицу,
которая предоставляет информацию обо всех
подготовленных запросах, связанных с
соединением с базой данных. Расширение SQLITE_STMT включено в
объединение, хотя это отключено по умолчанию.
Используйте выбор времени компиляции
SQLITE_ENABLE_STMTVTAB, чтобы позволить расширение SQLITE_STMT.
Расширение SQLITE_STMT может также быть загружено во время выполнения, собрав
расширение в общую библиотеку или DLL с использованием исходного кода в
https://sqlite.org/src/file/ext/misc/stmt.c и следуя инструкциям, как
собрать загружаемые расширения. Расширение SQLITE_STMT позволено по умолчанию в
оболочке командной строки. Виртуальная таблица SQLITE_STMT только для чтения, которая
может быть непосредственно запрошена, чтобы получить доступ к информации обо
всех подготовленных запросах текущего соединения с базой данных. Например: Таким запросом можно немедленно управлять до вызова
sqlite3_close(),
чтобы подтвердить, что все подготовленные запросы были
закрыты
и помочь определить и разыскать подготовленные запросы, которые забыли. Виртуальная таблица SQLITE_STMT может также использоваться для
получения информации о работе подготовленных запросов, чтобы помочь в
оптимизации применения. Например, чтобы узнать, сколько памяти используется
подготовленными запросами, которые никогда не
использовались, можно было: Столбцы, предоставленные SQLITE_STMT, перечислены в этом CREATE TABLE: Будущие выпуски могут добавить новые колонки вывода и могут изменить
порядок устаревших колонок. Более подробная информация о значении каждой
колонки в виртуальной таблице SQLITE_STMT обеспечивается ниже: sql:
оригинальный код на SQL подготовленного запроса. Если подготовленный запрос
собран, используя sqlite3_prepare(),
код на SQL, возможно, не был сохранен, в этом случае этой
колонкой будет NULL. ncol: количество колонок в наборе результатов запроса.
Для запросов DML у этой колонки есть значение 0. ro: Столбец "read only". Эта колонка true (не 0),
если SQL-оператор это запрос и false (0), если это запрос DML. busy: Поле true, если подготовленный запрос в настоящее время
выполняется. Другими словами, эта область true, если
sqlite3_step() вызван для
on the подготовленного запроса
по крайней мере однажды, но
sqlite3_reset() еще не вызвали. nscan: Эта область указывает число раз, что
bytecode прошел таблицу
как часть полного сканирования таблицы. Большое значение этого поля может
указать на возможность улучшить работу, добавив индекс.
Эта область эквивалентна
SQLITE_STMTSTATUS_FULLSCAN_STEP. nsort: Это число раз, которое
bytecode engine должен был сортировать.
Положительное значение в этой области может указать на возможность улучшить
работу, добавив индекс, который заставит результаты запроса появляться
естественно в желаемом порядке. Эта область эквивалентна
SQLITE_STMTSTATUS_SORT. naidx: Это количество строк, которые были вставлены в
автоматические индексы.
Положительное значение в этой области может указать на возможность улучшить
работу, добавив названный индекс, который
занимает место автоматического индекса. Эта область эквивалентна
SQLITE_STMTSTATUS_AUTOINDEX. nstep: Количество операций bytecode,
которые были выполнены для подготовленного запроса.
Эта область может использоваться в качестве источника сведений о том, сколько
процессорного времени использует запрос. Эта область эквивалентна
SQLITE_STMTSTATUS_VM_STEP. reprep: Это число раз, которое запрос
должен был быть повторно подготовлен из-за изменений схемы или привязки
параметра. Эта область эквивалентна
SQLITE_STMTSTATUS_REPREPARE. run: Эта область указывает число раз выполнения запроса.
Эта область эквивалентна
SQLITE_STMTSTATUS_RUN. mem: Число байтов хранения кучи, используемых
подготовленным запросом. Эта область эквивалентна
SQLITE_STMTSTATUS_MEMUSED.
Choose any three.
1. Обзор
2. Использование
SELECT * FROM sqlite_stmt;
SELECT sum(mem) FROM sqlite_stmt WHERE run=0;
2.1. Столбцы
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
);