RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
Visa 
4274 3200 2453 6495 

Small. Fast. Reliable.
Choose any three.
Виртуальная таблица 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 также сделает некоторые вызовы file-control, чтобы извлечь информацию об использовании памяти подсистемой ZIPVFS, если та подсистема, как лицензируется, установлена и будет использоваться.

Таблица SQLITE_MEMSTAT имеет следующую схему:

CREATE TABLE sqlite_memstat(name TEXT, schema TEXT, value INT, hiwtr INT);

Каждая строка таблицы SQLITE_MEMSTAT соответствует единственному вызову sqlite3_status64() или sqlite3_db_status(). Столбец NAME строки определяет, какой "verb" передан интерфейсам. Например, если 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.