Виртуальная таблица SQLITE_MEMSTAT
1. Обзор
Расширение SQLITE_MEMSTAT реализует виртуальную таблицу только с именем, предоставляющую SQL-доступ к интерфейсам sqlite3_status64() и sqlite3_db_status().
Расширение SQLITE_STMT также может быть загружено во время выполнения, компилируя расширение в динамическую библиотеку или DLL, используя исходный код по адресу https://sqlite.org/src/file/ext/misc/memstat.c и следуя инструкциям по компиляции загружаемых расширений.
2. Использование
Виртуальная таблица SQLITE_MEMSTAT — это таблица только для чтения, которую можно запросить для определения характеристик производительности (в основном объёма используемой памяти) текущего экземпляра SQLite. Таблица SQLITE_MEMSTATE по существу является оболочкой вокруг C-языковых API sqlite3_status64() и sqlite3_db_status(). Если файл исходного кода memstat.c скомпилирован с опцией -DSQLITE_ENABLE_ZIPVFS, то SQLITE_MEMSTAT также выполнит некоторые вызовы управления файлами для извлечения информации об использовании памяти подсистемой ZIPVFS, если эта подсистема лицензирована, установлена и используется.
Таблица SQLITE_MEMSTAT, по-видимому, имеет следующую схему:
CREATE TABLE sqlite_memstat( name TEXT, schema TEXT, value INT, hiwtr INT );
Каждая строка таблицы SQLITE_MEMSTAT соответствует одному вызову одного из интерфейсов sqlite3_status64() или sqlite3_db_status(). Столбец NAME строки идентифицирует, какой «глагол» был передан этим интерфейсам. Например, если sqlite3_status64() вызывается с SQLITE_STATUS_MEMORY_USED, то столбец NAME — это 'MEMORY_USED'. Или если sqlite3_db_status() вызывается с SQLITE_DBSTATUS_CACHE_USED, то столбец NAME — это "DB_CACHE_USED".
Столбец SCHEMA имеет значение NULL, за исключением случаев, когда используется интерфейс sqlite3_file_control() для запроса бэкенда ZIPVFS. Так как это происходит только тогда, когда модуль memstat.c скомпилирован с -DSQLITE_ENABLE_ZIPVFS и когда ZIPVFS используется, SCHEMA обычно равен NULL.
Столбцы VALUE и HIWTR отображают текущее значение измерения и его «максимальное значение». Максимальное значение — это наибольшее значение, когда-либо наблюдаемое для измерения, по крайней мере, с момента последнего сброса. Виртуальная таблица SQLITE_MEMSTAT не предоставляет механизма для сброса максимального значения.
В зависимости от того, какой параметр запрашивается, одно из измерений VALUE или HIWTR может быть неопределённым. Например, только максимальное значение имеет смысл для SQLITE_STATUS_MALLOC_SIZE, а только текущее значение имеет смысл для SQLITE_DBSTATUS_CACHE_USED. Для строк, где одно из значений VALUE или HIWTR не имеет смысла, это значение возвращается как NULL. интерфейсы, с начальным
Эта страница была последняя обновлена 08.01.2022 05:02:57 UTC
SQLite is in the Public Domain.
https://sqlite.org/memstat.html