JetGetThreadStats 函数
适用于: Windows |Windows Server
JetGetThreadStats 函数
JetGetThreadStats 函数从数据库引擎中检索当前线程的性能信息。 多个调用可用于收集反映数据库引擎在此线程上的这些调用之间的活动的统计信息。
Windows Vista:JetGetThreadStats 在 Windows Vista 中引入。
JET_ERR JET_API JetGetThreadStats(
__out void* pvResult,
__in unsigned long cbMax
);
parameters
pvResult
接收线程统计信息数据的输出缓冲区。 成功调用后,缓冲区包含 JET_THREADSTATS 结构。
cbMax
输出缓冲区的最大大小(以字节为单位)。
返回值
此函数返回具有以下返回代码之一 的JET_ERR 数据类型。 有关可能的 ESE 错误的详细信息,请参阅 可扩展存储引擎错误 和 错误处理参数。
返回代码 |
说明 |
---|---|
JET_errSuccess |
操作已成功完成。 |
JET_errBufferTooSmall |
操作失败,因为提供的输出缓冲区太小,无法包含请求的数据。 当输出缓冲区太小而无法包含数据库引擎支持的最小版本的 JET_THREADSTATS 结构时,JetGetThreadStats 函数将返回此错误。 |
成功后,输出缓冲区将包含包含当前线程的数据库引擎统计信息 的JET_THREADSTATS 结构。
失败时,输出缓冲区的状态未定义。
备注
此 API 的两次连续调用提供的信息旨在用于计算当前线程上任何其他数据库引擎操作的费用。 一般情况下,这是通过对统计信息进行前后读取,并从前计数中减去后计数来获取所执行操作的净计数。
例如,应用程序可以调用 JetGetThreadStats 一次,以获取当前线程统计信息的初始读取。 然后,它可以调用将 cRow 参数设置为 JET_MoveNext 的 JetMove 函数,以移动到索引上的下一个索引项。 然后,它可以再次调用 JetGetThreadStats 来获取线程统计信息的另一次读取。 然后,它可以从第二次读取中减去 cPageReferenced 计数器。 结果是数据库引擎为执行 JetMove 操作而引用的数据库页数。
每个线程的统计信息在该线程的生存期内累积。 如果数据库引擎的 DLL 从主机进程卸载,则会重置统计信息。
将来可能会扩展 JET_THREADSTATS 结构,以包含更多统计信息。 新统计信息将添加到结构的末尾,并且可以通过增加输出缓冲区大小来检索。 可以通过较大的 cbStruct 值推断是否存在其他统计信息。
要求
要求 | 值 |
---|---|
客户端 |
需要 Windows Vista。 |
服务器 |
需要 Windows Server 2008。 |
标头 |
在 Esent.h 中声明。 |
Library |
使用 ESENT.lib。 |
DLL |
需要ESENT.dll。 |