JetComputeStats Function
Applies to: Windows | Windows Server
JetComputeStats Function
The JetComputeStats function walks each index of a table to exactly compute the number of entries in an index, and the number of distinct keys in an index. This information, together with the number of database pages allocated for an index and the current time of the computation is stored in index metadata in the database. This data can be subsequently retrieved with information operations.
JET_ERR JET_API JetComputeStats(
__in JET_SESID sesid,
__in JET_TABLEID tableid
);
Parameters
sesid
The session to use for this call.
tableid
The cursor that will be used for this call. Describes the table to compute statistics on.
Return Value
This function returns the JET_ERR datatype with one of the following return codes. For more information about the possible ESE errors, see Extensible Storage Engine Errors and Error Handling Parameters.
Return code |
Description |
---|---|
JET_errSuccess |
The operation completed successfully. |
JET_errClientRequestToStopJetService |
It is not possible to complete the operation because all activity on the instance associated with the session has ceased as a result of a call to JetStopService. |
JET_errInstanceUnavailable |
It is not possible to complete the operation because the instance associated with the session has encountered a fatal error that requires that access to all data be revoked to protect the integrity of that data. This error will only be returned by Windows XP and later releases. |
JET_errNotInitialized |
It is not possible to complete the operation because the instance associated with the session has not been initialized yet. |
JET_errRestoreInProgress |
It is not possible to complete the operation because a restore operation is in progress on the instance associated with the session. |
JET_errRollbackError |
An error occurred requiring this operation to rollback all changes, but the transaction rollback itself failed. |
JET_errSessionSharingViolation |
The same session cannot be used for more than one thread at the same time. This error will only be returned by Windows XP and later releases. |
JET_errTermInProgress |
It is not possible to complete the operation because the instance associated with the session is being shut down. |
On success, up-to-date statistics are stored in the database catalogs for the table described with the given cursor.
On failure, no updates of any kind are made to the database.
Remarks
This operation can be resource consuming since each index in a table must be walked in its entirety. JetGetRecordPosition can be used to get a rough estimate of the number of entries in an index, but it cannot by itself estimate the number of distinct values in an index.
The data computed by this operation begins to become out of date and the table is subsequently updated.
Updates to the database made by JetComputeStats are made in a lazy fashion. This means that no log flush will be accompanied by this operation and a system crash subsequent to a return of JET_errSuccess by JetComputeStats can still cause these updates to be lost.
Requirements
Requirement | Value |
---|---|
Client |
Requires Windows Vista, Windows XP, or Windows 2000 Professional. |
Server |
Requires Windows Server 2008, Windows Server 2003, or Windows 2000 Server. |
Header |
Declared in Esent.h. |
Library |
Use ESENT.lib. |
DLL |
Requires ESENT.dll. |
See Also
JET_ERR
JET_TABLEID
JET_SESID
JetGetRecordPosition
JetGetTableInfo
JetGetTableIndexInfo
JetStopService