getAllDatabaseStats method

Future<Map<String, DatabaseStats>> getAllDatabaseStats()

Gets statistics for all databases in the environment.

Returns a map with statistics for:

  • 'environment' - Overall environment stats
  • 'default' - Default database stats
  • Named databases - Stats for each named database

Example:

final allStats = await db.getAllDatabaseStats();
print('Environment entries: ${allStats['environment']?.entries}');
print('Default DB entries: ${allStats['default']?.entries}');

// Stats for named databases
allStats.forEach((name, stats) {
  if (name != 'environment' && name != 'default') {
    print('DB $name entries: ${stats.entries}');
  }
});

Throws StateError if database is closed Throws LMDBException if operation fails

Implementation

Future<Map<String, DatabaseStats>> getAllDatabaseStats() async {
  final statistics = <String, DatabaseStats>{};

  return _withTransaction((txn) async {
    // Get environment stats
    statistics['environment'] = await getEnvironmentStats();

    // Get stats for default DB
    statistics['default'] = await stats(txn);

    // Get stats for all named DBs
    final names = await _getDbNames(txn);
    for (final name in names) {
      statistics[name] = await stats(txn, dbName: name);
    }

    return statistics;
  }, flags: LMDBFlagSet.readOnly);
}