,I$Berkeley DB: DB->stat[P

DB->stat





#include <db.h>

intDB->stat(DB *db,; void *sp, void *(*db_malloc)(size_t), u_int32_t flags);





Description



9The DB->stat function creates a statistical structure and<copies a pointer to it into user-specified memory locations.8Specifically, if sp is non-NULL, a pointer to the?statistics for the database are copied into the memory locationit references.

7Statistical structures are created in allocated memory.IfBdb_malloc is non-NULL, it is called to allocate the memory,:otherwise, the library function malloc(3)) is used.CThe function db_malloc must match the calling conventions of&the malloc(3)) library routine.CRegardless, the caller is responsible for deallocating the returnedmemory.ETo deallocate the returned memory, free each returned memory pointer;@pointers inside the memory do not need to be individually freed.

EThe DB->stat function cannot be transaction protected, and, should2be done outside of the scope of a transaction.

GIn the presence of multiple threads or processes accessing an active:database, the returned information may be out-of-date.

AThis function may access all of the pages in the database, andAtherefore may incur a severe performance penalty and have obvious3negative effects on the underlying buffer pool.

CThe flags parameter must be set to 0 or the following value:

]

DB_RECORDCOUNT
Fill in the bt_nrecs information of the statistics structure,Hbut do not collect any other information. This flag makes it reasonableBfor applications to request a record count from a database without@incurring a performance penalty. It is only available for RecnoGdatabases, or Btree databases where the underlying database was createdwith the DB_RECNUM flag.


The DB->statHfunction returns the value of errno on failure, and 0 on success.#

Btree and Recno Statistics



)In the case of a Btree or Recno database,Dthe statistics are stored in a structure of type DB_BTREE_STAT. The#following fields will be filled in:

T

u_int32_t bt_magic;
Magic number that identifies the file as a btree file.@
u_int32_t bt_version;
The version of the btree file type.>
u_int32_t bt_flags;
Permanent database flags, including/DB_DUP, DB_FIXEDLEN, DB_RECNUM and DB_RENUMBER.{
u_int32_t bt_minkey;
The bt_minkey value specified to db_open, if any.x
u_int32_t bt_re_len;
The re_len value specified to db_open, if any.x
u_int32_t bt_re_pad;
The re_pad value specified to db_open, if any.8
u_int32_t bt_pagesize;
Underlying tree page size.9
u_int32_t bt_levels;
Number of levels in the tree.c
u_int32_t bt_nrecs;
Number of data items in the tree (since there may be multiple data items@per key, this number may not be the same as the number of keys).:
u_int32_t bt_int_pg;
Number of tree internal pages.7
u_int32_t bt_leaf_pg;
Number of tree leaf pages.;
u_int32_t bt_dup_pg;
Number of tree duplicate pages.;
u_int32_t bt_over_pg;
Number of tree overflow pages.;
u_int32_t bt_free;
Number of pages on the free list.L
u_int32_t bt_int_pgfree;
Number of bytes free in tree internal pages.I
u_int32_t bt_leaf_pgfree;
Number of bytes free in tree leaf pages.M
u_int32_t bt_dup_pgfree;
Number of bytes free in tree duplicate pages.M
u_int32_t bt_over_pgfree;
Number of bytes free in tree overflow pages.


The DB->statHfunction returns the value of errno on failure, and 0 on success.



Errors

QIf a fatal error occurs in Berkeley DB, the DB->stat function may fail and returnFDB_RUNRECOVERY, at which point all subsequent database calls will alsoreturn DB_RUNRECOVERY.

The DB->stat)function may fail and return errnoKfor any of the errors specified for the following Berkeley DB and C library functions:4DB->cursor,DBcursor->c_close(3),dbenv->db_paniccall(3), fflush(3), fprintf(3),6lock_get,3lock_put,6lock_vec, malloc(3),9memp_fget,9memp_fput, memset(3), strerror(3), vfprintf(3),and vsnprintf(3).



See Also

8db_appexit,8db_appinit,8db_version,2DB->close,4DB->cursor,.DB->del,,DB->fd,.DB->get,0DB->join,/db_open,.DB->put, DB->stat,0DB->sync,;DBcursor->c_close,7DBcursor->c_del,6DBcursor->c_getand7DBcursor->c_put.
ÿÿ