Module org.firebirdsql.jaybird
Package org.firebirdsql.management

# Interface StatisticsManager

All Superinterfaces:
  `AttachmentProperties`, `BaseProperties`, `ServiceConnectionProperties`, `ServiceManager`

All Known Implementing Classes:
  `FBStatisticsManager`

public interface StatisticsManager extends ServiceManager
A `StatisticsManager` is responsible for replicating the functionality of the `gstat` command-line tool.

This functionality includes:

- Retrieving data table statistics
- Retrieving the database header page
- Retrieving index statistics
- Retrieving database logging information
- Retrieving statistics for the data dictionary

Author:
  Gabriel Reid

## Nested Class Summary

Nested Classes
Modifier and Type
Interface
Description
`static final class`
`StatisticsManager.DatabaseTransactionInfo`

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`DATA_TABLE_STATISTICS`
Request statistics on data tables.
`static final int`
`INDEX_STATISTICS`
Request statistics on indexes.
`static final int`
`RECORD_VERSION_STATISTICS`
Request statistics on record versions.
`static final int`
`SYSTEM_TABLE_STATISTICS`
Request statistics on system tables.

## Method Summary

Modifier and Type
Method
Description
`void`
`getDatabaseStatistics()`
Get the full database statistics information, excluding system table information.
`void`
`getDatabaseStatistics(int options)`
Get specific database statistics.
`StatisticsManager.DatabaseTransactionInfo`
`getDatabaseTransactionInfo()`
Get transaction information of the database specified in `database`.
`void`
`getHeaderPage()`
Fetch the database statistics header page.
`void`
`getTableStatistics(String[] tableNames)`
Get the table statistics.

### Methods inherited from interface org.firebirdsql.jaybird.props.AttachmentProperties

`getAuthPlugins, getCharSet, getConnectTimeout, getDbCryptConfig, getEnableProtocol, getEncoding, getParallelWorkers, getPassword, getPortNumber, getProcessId, getProcessName, getRoleName, getServerName, getSocketBufferSize, getSoTimeout, getType, getUser, getWireCrypt, isWireCompression, setAuthPlugins, setCharSet, setConnectTimeout, setDbCryptConfig, setEnableProtocol, setEncoding, setParallelWorkers, setPassword, setPortNumber, setProcessId, setProcessName, setRoleName, setServerName, setSocketBufferSize, setSoTimeout, setType, setUser, setWireCompression, setWireCrypt`

### Methods inherited from interface org.firebirdsql.jaybird.props.BaseProperties

`connectionPropertyValues, getBooleanProperty, getBooleanProperty, getIntProperty, getIntProperty, getProperty, getProperty, setBooleanProperty, setIntProperty, setProperty`

### Methods inherited from interface org.firebirdsql.jaybird.props.ServiceConnectionProperties

`getExpectedDb, getServiceName, setExpectedDb, setServiceName`

### Methods inherited from interface org.firebirdsql.management.ServiceManager

`getDatabase, getHost, getLogger, getPort, getServerVersion, getWireCryptAsEnum, setDatabase, setHost, setLogger, setPort, setWireCryptAsEnum`

## Field Details

### DATA_TABLE_STATISTICS

static final int DATA_TABLE_STATISTICS
Request statistics on data tables.

See Also:
  - Constant Field Values

### INDEX_STATISTICS

static final int INDEX_STATISTICS
Request statistics on indexes.

See Also:
  - Constant Field Values

### SYSTEM_TABLE_STATISTICS

static final int SYSTEM_TABLE_STATISTICS
Request statistics on system tables.

See Also:
  - Constant Field Values

### RECORD_VERSION_STATISTICS

static final int RECORD_VERSION_STATISTICS
Request statistics on record versions.

See Also:
  - Constant Field Values

## Method Details

### getHeaderPage

void getHeaderPage() throws SQLException
Fetch the database statistics header page.

The header information is written to this `StatisticsManager`'s logger.

Throws:
  `SQLException` - if a database access error occurs

### getDatabaseStatistics

void getDatabaseStatistics() throws SQLException
Get the full database statistics information, excluding system table information.

The statistics information is written to this `StatisticsManager`'s logger.

The listed data includes:

- statistics header page
- log statistics
- index statistics
- data table statistics

Invoking this method is equivalent to the default behaviour of `gstat` on the command-line.

Throws:
  `SQLException` - if a database access error occurs

### getDatabaseStatistics

void getDatabaseStatistics(int options) throws SQLException
Get specific database statistics.

The statistics information is written to this `StatisticsManager`'s logger. All invocations of this method will result in the header page and log data being output.

The following options can be supplied as a bitmask:

- `DATA_TABLE_STATISTICS`
- `SYSTEM_TABLE_STATISTICS`
- `INDEX_STATISTICS`
- `RECORD_VERSION_STATISTICS`

If this method is invoked with `0` as the `options` value, only the header and log statistics will be output.

Parameters:
  `options` - A bitmask combination of `DATA_TABLE_STATISTICS`, `SYSTEM_TABLE_STATISTICS`, `INDEX_STATISTICS`, or `RECORD_VERSION_STATISTICS`. Can also be `0`, which is equivalent to calling method `getDatabaseStatistics()`
Throws:
  `SQLException`

### getTableStatistics

void getTableStatistics(String[] tableNames) throws SQLException
Get the table statistics.

The statistics information is written to this `StatisticsManager`'s logger.

The listed data includes:

- the primary pointer and index root page numbers
- number of data pages and their average fill
- fill distribution

Invoking this method is equivalent to the behaviour of `gstat -t <table name>` on the command-line.

Parameters:
  `tableNames` - array of table names to analyze.
Throws:
  `SQLException` - if something went wrong.

### getDatabaseTransactionInfo

StatisticsManager.DatabaseTransactionInfo getDatabaseTransactionInfo() throws SQLException
Get transaction information of the database specified in `database`.

Returns:
  Database transaction information
Throws:
  `SQLException` - If `database` is not specified, or for failures to connect or retrieve information