Параметры состояния подключений к базе данных
#define SQLITE_DBSTATUS_LOOKASIDE_USED 0 #define SQLITE_DBSTATUS_CACHE_USED 1 #define SQLITE_DBSTATUS_SCHEMA_USED 2 #define SQLITE_DBSTATUS_STMT_USED 3 #define SQLITE_DBSTATUS_LOOKASIDE_HIT 4 #define SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE 5 #define SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL 6 #define SQLITE_DBSTATUS_CACHE_HIT 7 #define SQLITE_DBSTATUS_CACHE_MISS 8 #define SQLITE_DBSTATUS_CACHE_WRITE 9 #define SQLITE_DBSTATUS_DEFERRED_FKS 10 #define SQLITE_DBSTATUS_CACHE_USED_SHARED 11 #define SQLITE_DBSTATUS_CACHE_SPILL 12 #define SQLITE_DBSTATUS_TEMPBUF_SPILL 13 #define SQLITE_DBSTATUS_MAX 13 /* Largest defined DBSTATUS */
Эти константы представляют собой доступные целочисленные «команды», которые можно передать в качестве второго аргумента интерфейсу sqlite3_db_status().
В будущих выпусках SQLite могут появиться новые команды. Существующие команды могут быть исключены. Приложениям следует проверять код возврата sqlite3_db_status(), чтобы убедиться, что вызов выполнен успешно. Интерфейс sqlite3_db_status() вернёт ненулевой код ошибки, если вызвана исключённая или неподдерживаемая команда.
- SQLITE_DBSTATUS_LOOKASIDE_USED
- Этот параметр возвращает количество используемых в данный момент слотов памяти lookaside.
- SQLITE_DBSTATUS_LOOKASIDE_HIT
- Этот параметр возвращает количество попыток malloc, успешно выполненных с использованием памяти lookaside. Значение имеет только максимум; текущее значение всегда равно нулю.
- SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE
- Этот параметр возвращает количество попыток malloc, которые могли бы быть выполнены с использованием памяти lookaside, но завершились неудачей, поскольку запрошенный объём памяти превышал размер слота lookaside. Значение имеет только максимум; текущее значение всегда равно нулю.
- SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL
- Этот параметр возвращает количество попыток malloc, которые могли бы быть выполнены с использованием памяти lookaside, но завершились неудачей, поскольку вся память lookaside уже была занята. Значение имеет только максимум; текущее значение всегда равно нулю.
- SQLITE_DBSTATUS_CACHE_USED
- Этот параметр возвращает приблизительное количество байтов динамической памяти, используемой всеми кэшами pager, связанными с подключением к базе данных. Максимальное значение для SQLITE_DBSTATUS_CACHE_USED всегда равно 0.
- SQLITE_DBSTATUS_CACHE_USED_SHARED
- Этот параметр аналогичен DBSTATUS_CACHE_USED, однако, если кэш pager используется двумя или более подключениями, объём динамической памяти, используемой этим кэшем pager, равномерно распределяется между подключениями. Иными словами, если ни один из кэшей pager, связанных с подключением к базе данных, не используется совместно, этот запрос возвращает то же значение, что и DBSTATUS_CACHE_USED. Если же один или несколько кэшей pager используются совместно, значение, возвращаемое этим вызовом, будет меньше значения DBSTATUS_CACHE_USED. Максимальное значение для SQLITE_DBSTATUS_CACHE_USED_SHARED всегда равно 0.
- SQLITE_DBSTATUS_SCHEMA_USED
- Этот параметр возвращает приблизительное количество байтов динамической памяти, используемой для хранения схем всех баз данных, связанных с подключением: main, temp и любых баз данных, добавленных с помощью ATTACH. Учитывается весь объём памяти, используемый схемами, даже если память схем совместно используется с другими подключениями к базам данных из-за включённого режима общего кэша. Максимальное значение для SQLITE_DBSTATUS_SCHEMA_USED всегда равно 0.
- SQLITE_DBSTATUS_STMT_USED
- Этот параметр возвращает приблизительное количество байтов динамической памяти и памяти lookaside, используемой всеми подготовленными выражениями, связанными с подключением к базе данных. Максимальное значение для SQLITE_DBSTATUS_STMT_USED всегда равно 0.
- SQLITE_DBSTATUS_CACHE_HIT
- Этот параметр возвращает количество попаданий в кэш pager. Максимальное значение для SQLITE_DBSTATUS_CACHE_HIT всегда равно 0.
- SQLITE_DBSTATUS_CACHE_MISS
- Этот параметр возвращает количество промахов кэша pager. Максимальное значение для SQLITE_DBSTATUS_CACHE_MISS всегда равно 0.
- SQLITE_DBSTATUS_CACHE_WRITE
- Этот параметр возвращает количество изменённых записей кэша, записанных на диск. В частности, это количество страниц, записанных в файл wal в базах данных в режиме wal, или количество страниц, записанных в файл базы данных в базах данных в режиме отката. Страницы, записанные в рамках отката транзакции или операций восстановления базы данных, не учитываются. Если при записи страницы на диск возникает ошибка ввода-вывода или другая ошибка, влияние этой ошибки на последующие запросы SQLITE_DBSTATUS_CACHE_WRITE не определено. Максимальное значение для SQLITE_DBSTATUS_CACHE_WRITE всегда равно 0.
Значения, измеряемые этим параметром (SQLITE_DBSTATUS_CACHE_WRITE), частично пересекаются со значениями SQLITE_DBSTATUS_TEMPBUF_SPILL. Сброс одного из них уменьшит другое значение.
- SQLITE_DBSTATUS_CACHE_SPILL
- Этот параметр возвращает количество изменённых записей кэша, записанных на диск в ходе транзакции из-за переполнения кэша страниц. Транзакции выполняются эффективнее, если записывать их на диск целиком. Запись страниц на диск в середине транзакции создаёт дополнительные накладные расходы. Этот параметр можно использовать для выявления неэффективности, которую можно устранить, увеличив размер кэша.
- SQLITE_DBSTATUS_DEFERRED_FKS
- Текущее значение этого параметра равно нулю тогда и только тогда, когда выполнены все ограничения внешних ключей (отложенные или немедленные). Максимальное значение всегда равно 0.
- SQLITE_DBSTATUS_TEMPBUF_SPILL
- Этот параметр возвращает количество байтов, записанных во временные файлы на диске, которые можно было бы хранить в памяти при наличии достаточного объёма памяти. Это значение включает записи в промежуточные таблицы, используемые в сложных запросах, внешнюю сортировку с выгрузкой на диск и записи во временные таблицы TEMP. Максимальное значение всегда равно 0.
Значения, измеряемые этим параметром (SQLITE_DBSTATUS_TEMPBUF_SPILL), частично пересекаются со значениями SQLITE_DBSTATUS_CACHE_WRITE. Сброс одного из них уменьшит другое значение.
См. также списки объектов, констант и функций.
SQLite is in the Public Domain.
https://sqlite.org/c3ref/c_dbstatus_options.html