SQL Server の Transactions オブジェクト
適用対象: SQL サーバー
Microsoft SQL Server の Transactions オブジェクトには、データベース エンジンのインスタンスでアクティブになっているトランザクションの数を監視するカウンターと、スナップショット分離用の tempdb
内の行バージョン ストアなど、アクティブなトランザクションによるリソースへの影響を監視するためのカウンターがあります。 トランザクションは、論理的な 1 つの作業単位です。つまり、一連の操作であり、すべて成功するか、データの論理的な整合性を維持するためにデータベースからすべて消去されるかのいずれかの結果になります。 SQL Server データベース内のデータへの変更は、すべてトランザクションで行われます。
スナップショット分離レベルを使用できるようにデータベースを設定している場合は、データベース内の各行に加えられた変更の記録を SQL Server で管理する必要があります。 行が変更されるたびに、変更前の状態の行のコピーが tempdb
内の行バージョン ストアに記録されます。 Transaction オブジェクトの多くのカウンターは、tempdb
内の行バージョン ストアのサイズと増加率の監視に使用できます。
Transactions オブジェクトのカウンターは、データベース エンジンの 1 つのインスタンス内のすべてのトランザクションを報告します。
次の表では、 SQLServer:Transactions のカウンターについて説明します。
SQL Server Transactions のカウンター | 説明 |
---|---|
Free Space in tempdb (KB) | tempdb 内の使用可能な領域 (KB)。 スナップショット分離レベルのバージョン ストアと、データベース エンジンのこのインスタンスで作成された新しいすべての一時オブジェクトの両方を保持するには、十分な空き領域が必要です。 |
Longest Transaction Running Time | 現在のトランザクションの中で最も長くアクティブになっているトランザクションが開始してから現在までの継続時間 (秒)。 このカウンターがアクティビティを示すのは、データベースが READ COMMITTED スナップショット分離レベルの場合のみです。 データベースが他の分離レベルの場合、アクティビティはログに記録されません。 |
NonSnapshot Version Transactions | スナップショット分離レベルを使用していない現在アクティブなトランザクションのうち、データ変更を行ったトランザクションの数。データを変更すると、tempdb のバージョン ストアに行バージョンが生成されます。 |
Snapshot Transactions | スナップショット分離レベルを使用している現在アクティブなトランザクションの数。 注: Snapshot Transactions オブジェクト カウンターは、 BEGIN TRANSACTION ステートメントが発行されたときではなく、最初のデータ アクセスが行われたときに応答します。 |
トランザクション | 現在アクティブなトランザクションの数。すべての種類が含まれます。 |
Update conflict ratio | この 1 秒間で更新の競合が発生した、スナップショット分離レベルを使用しているトランザクションの割合。 更新の競合が発生するのは、別のトランザクションによって最後に変更が行われ、スナップショット分離レベルのトランザクションの開始時にはコミットされていなかった行に対して、スナップショット分離レベルのトランザクションが変更を試行したときです。 |
Update conflict ratio base | 内部使用のみ。 |
Update Snapshot Transactions | スナップショット分離レベルを使用し、データを変更した現在アクティブなトランザクションの数。 |
Version Cleanup rate (KB/s) | tempdb 内のスナップショット分離用のバージョン ストアから行バージョンが削除される速度 (KB/秒)。 |
Version Generation rate (KB/s) | tempdb 内のスナップショット分離用のバージョン ストアに新しい行バージョンが追加される速度 (KB/秒)。 |
Version Store Size (KB) | スナップショット分離レベルの行バージョンを格納するために使用される tempdb 内の領域 (KB)。 |
Version Store unit count | tempdb 内のスナップショット分離用のバージョン ストアでアクティブになっているアロケーション ユニットの数。 |
Version Store unit creation | データベース エンジンのインスタンスの起動後に、スナップショット分離用のストアで作成されたアロケーション ユニットの数。 |
Version Store unit truncation | データベース エンジンのインスタンスの起動後に、スナップショット分離用のストアから削除されたアロケーション ユニットの数。 |
例
sys.dm_os_performance_counters の動的管理ビューで次の T-SQL クエリを使用して、このオブジェクトのクエリ パフォーマンス カウンターの確認を開始します。
SELECT * FROM sys.dm_os_performance_counters
WHERE object_name LIKE '%Transactions%';