次の方法で共有


JetGetThreadStats 関数

適用対象: Windows |Windows Server

JetGetThreadStats 関数

JetGetThreadStats 関数は、現在のスレッドのデータベース エンジンからパフォーマンス情報を取得します。 複数の呼び出しを使用して、これらの呼び出し間のこのスレッドでのデータベース エンジンのアクティビティを反映する統計を収集できます。

Windows Vista:JetGetThreadStats は Windows Vista で導入されています。

    JET_ERR JET_API JetGetThreadStats(
      __out         void* pvResult,
      __in          unsigned long cbMax
    );

パラメーター

pvResult

スレッド統計データを受け取る出力バッファー。 バッファーには、呼び出しが成功 した後にJET_THREADSTATS 構造体が含まれています。

cbMax

出力バッファーの最大サイズ (バイト単位)。

戻り値

この関数は、次のいずれかの戻りコードを 使用して、JET_ERR データ型を返します。 考えられる ESE エラーの詳細については、「 拡張ストレージ エンジン エラーエラー処理パラメーター」を参照してください。

リターン コード

説明

JET_errSuccess

操作は正常に完了しました。

JET_errBufferTooSmall

指定された出力バッファーが小さすぎて要求されたデータを格納できなかったため、操作が失敗しました。 JetGetThreadStats 関数は、出力バッファーが小さすぎてデータベース エンジンでサポートされているJET_THREADSTATS構造の最小バージョンを含めすぎると、このエラーを返します。

成功すると、出力バッファーには、現在のスレッドのデータベース エンジン統計を含む JET_THREADSTATS 構造体が含まれます。

失敗した場合、出力バッファーの状態は未定義です。

解説

この API の 2 つの連続する呼び出しによって提供される情報は、現在のスレッドに対する他のデータベース エンジン操作の費用を計算するために使用することを目的としています。 一般に、統計の読み取り前と読み取り後に を取得し、before カウントから after カウントを減算して、実行された操作の純数を取得します。

たとえば、アプリケーションは JetGetThreadStats を 1 回呼び出して、現在のスレッドの統計の最初の読み取りを取得できます。 その後、cRow パラメーターを JET_MoveNext に設定して JetMove 関数を呼び出して、インデックスの次のインデックス エントリに移動できます。 その後、 JetGetThreadStats をもう一度呼び出して、スレッドの統計の別の読み取りを取得できます。 その後、1 つ目の読み取りから cPageReferenced カウンターを減算できます。 結果は、 JetMove 操作を実行するためにデータベース エンジンによって参照されるデータベース ページの数になります。

各スレッドの統計は、そのスレッドの有効期間にわたって累積されます。 データベース エンジンの DLL がホスト プロセスからアンロードされた場合、統計はリセットされます。

今後、JET_THREADSTATS構造が拡張され、より多くの統計が含まれる予定です。 構造体の末尾に新しい統計が追加され、出力バッファー サイズを増やして取得できます。 追加の統計の存在は、より大きな cbStruct 値によって推論できます。

必要条件

要件

Client

Windows Vista が必要です。

[サーバー]

Windows Server 2008 が必要です。

Header

Esent.h で宣言されています。

Library

ESENT.lib を使用します。

[DLL]

ESENT.dllが必要です。

参照

JET_ERR
JET_THREADSTATS
JetMove