JetComputeStats 函数
适用于:Windows |Windows服务器
JetComputeStats 函数
JetComputeStats 函数将演练表的每个索引,以精确计算索引中的条目数以及索引中的非重复键数。 此信息以及为索引分配的数据库页数以及计算的当前时间存储在数据库中的索引元数据中。 随后可以使用信息操作检索此数据。
JET_ERR JET_API JetComputeStats(
__in JET_SESID sesid,
__in JET_TABLEID tableid
);
参数
sesid
要用于此调用的会话。
tableid
将用于此调用的游标。 描述要计算其统计信息的表。
返回值
此函数使用以下返回代码之一返回 JET_ERR 数据类型。 有关可能的 ESE 错误的详细信息,请参阅可扩展存储引擎错误和错误处理参数。
返回代码 |
说明 |
---|---|
JET_errSuccess |
操作已成功完成。 |
JET_errClientRequestToStopJetService |
无法完成该操作,因为由于调用 JetStopService 而停止了与会话关联的实例上的所有活动。 |
JET_errInstanceUnavailable |
无法完成该操作,因为与会话关联的实例遇到了一个致命错误,该错误要求撤销对所有数据的访问以保护该数据的完整性。 此错误仅由 Windows XP 和更高版本返回。 |
JET_errNotInitialized |
无法完成该操作,因为尚未初始化与会话关联的实例。 |
JET_errRestoreInProgress |
无法完成该操作,因为还原操作正在与会话关联的实例上进行。 |
JET_errRollbackError |
发生错误,要求此操作回滚所有更改,但事务回滚本身失败。 |
JET_errSessionSharingViolation |
同一会话不能同时用于多个线程。 此错误仅由 Windows XP 和更高版本返回。 |
JET_errTermInProgress |
无法完成该操作,因为与会话关联的实例正在关闭。 |
成功后,最新的统计信息存储在给定游标描述的表的数据库目录中。
失败时,不会对数据库进行任何更新。
注解
此操作可能消耗资源,因为表中的每个索引必须全部执行。 JetGetRecordPosition 可用于大致估计索引中的条目数,但它本身无法估计索引中非重复值的数目。
此操作计算的数据开始过期,表随后会更新。
JetComputeStats 对数据库进行的更新以懒惰的方式进行。 这意味着,在 JetComputeStats 返回JET_errSuccess后,不会附带任何日志刷新,并且系统崩溃仍可能导致这些更新丢失。
要求
要求 | 值 |
---|---|
客户端 |
需要Windows Vista、Windows XP 或 Windows 2000 Professional。 |
Server |
需要Windows Server 2008、Windows Server 2003 或 Windows 2000 Server。 |
标头 |
在 Esent.h 中声明。 |
Library |
使用 ESENT.lib。 |
DLL |
需要ESENT.dll。 |
另请参阅
JET_ERR
JET_TABLEID
JET_SESID
JetGetRecordPosition
JetGetTableInfo
JetGetTableIndexInfo
JetStopService