Small. Fast. Reliable.
Choose any three.

## SQLite C Interface

## Status Parameters for database connections

>     #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 */

These constants are the available integer "verbs" that can be passed as the second argument to the sqlite3_db_status() interface.

New verbs may be added in future releases of SQLite. Existing verbs might be discontinued. Applications should check the return code from sqlite3_db_status() to make sure that the call worked. The sqlite3_db_status() interface will return a non-zero error code if a discontinued or unsupported verb is invoked.

SQLITE_DBSTATUS_LOOKASIDE_USED
  This parameter returns the number of lookaside memory slots currently checked out.

SQLITE_DBSTATUS_LOOKASIDE_HIT
  This parameter returns the number of malloc attempts that were satisfied using lookaside memory. Only the high-water value is meaningful; the current value is always zero.

SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE
  This parameter returns the number of malloc attempts that might have been satisfied using lookaside memory but failed due to the amount of memory requested being larger than the lookaside slot size. Only the high-water value is meaningful; the current value is always zero.

SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL
  This parameter returns the number of malloc attempts that might have been satisfied using lookaside memory but failed due to all lookaside memory already being in use. Only the high-water value is meaningful; the current value is always zero.

SQLITE_DBSTATUS_CACHE_USED
  This parameter returns the approximate number of bytes of heap memory used by all pager caches associated with the database connection. The highwater mark associated with SQLITE_DBSTATUS_CACHE_USED is always 0.

SQLITE_DBSTATUS_CACHE_USED_SHARED
  This parameter is similar to DBSTATUS_CACHE_USED, except that if a pager cache is shared between two or more connections the bytes of heap memory used by that pager cache is divided evenly between the attached connections. In other words, if none of the pager caches associated with the database connection are shared, this request returns the same value as DBSTATUS_CACHE_USED. Or, if one or more of the pager caches are shared, the value returned by this call will be smaller than that returned by DBSTATUS_CACHE_USED. The highwater mark associated with SQLITE_DBSTATUS_CACHE_USED_SHARED is always 0.

SQLITE_DBSTATUS_SCHEMA_USED
  This parameter returns the approximate number of bytes of heap memory used to store the schema for all databases associated with the connection - main, temp, and any ATTACH-ed databases. The full amount of memory used by the schemas is reported, even if the schema memory is shared with other database connections due to shared cache mode being enabled. The highwater mark associated with SQLITE_DBSTATUS_SCHEMA_USED is always 0.

SQLITE_DBSTATUS_STMT_USED
  This parameter returns the approximate number of bytes of heap and lookaside memory used by all prepared statements associated with the database connection. The highwater mark associated with SQLITE_DBSTATUS_STMT_USED is always 0.

SQLITE_DBSTATUS_CACHE_HIT
  This parameter returns the number of pager cache hits that have occurred. The highwater mark associated with SQLITE_DBSTATUS_CACHE_HIT is always 0.

SQLITE_DBSTATUS_CACHE_MISS
  This parameter returns the number of pager cache misses that have occurred. The highwater mark associated with SQLITE_DBSTATUS_CACHE_MISS is always 0.

SQLITE_DBSTATUS_CACHE_WRITE
  This parameter returns the number of dirty cache entries that have been written to disk. Specifically, the number of pages written to the wal file in wal mode databases, or the number of pages written to the database file in rollback mode databases. Any pages written as part of transaction rollback or database recovery operations are not included. If an IO or other error occurs while writing a page to disk, the effect on subsequent SQLITE_DBSTATUS_CACHE_WRITE requests is undefined. The highwater mark associated with SQLITE_DBSTATUS_CACHE_WRITE is always 0.

  There is overlap between the quantities measured by this parameter (SQLITE_DBSTATUS_CACHE_WRITE) and SQLITE_DBSTATUS_TEMPBUF_SPILL. Resetting one will reduce the other.

SQLITE_DBSTATUS_CACHE_SPILL
  This parameter returns the number of dirty cache entries that have been written to disk in the middle of a transaction due to the page cache overflowing. Transactions are more efficient if they are written to disk all at once. When pages spill mid-transaction, that introduces additional overhead. This parameter can be used to help identify inefficiencies that can be resolved by increasing the cache size.

SQLITE_DBSTATUS_DEFERRED_FKS
  This parameter returns zero for the current value if and only if all foreign key constraints (deferred or immediate) have been resolved. The highwater mark is always 0.

  [SQLITE_DBSTATUS_TEMPBUF_SPILL

SQLITE_DBSTATUS_TEMPBUF_SPILL
  This parameter returns the number of bytes written to temporary files on disk that could have been kept in memory had sufficient memory been available. This value includes writes to intermediate tables that are part of complex queries, external sorts that spill to disk, and writes to TEMP tables. The highwater mark is always 0.

  There is overlap between the quantities measured by this parameter (SQLITE_DBSTATUS_TEMPBUF_SPILL) and SQLITE_DBSTATUS_CACHE_WRITE. Resetting one will reduce the other.

See also lists of Objects, Constants, and Functions.