Lock:Timeout イベント クラス

適用対象:SQL Server

Lock:Timeout イベント クラスは、要求したリソースで別のトランザクションがブロッキング ロックを保持しているために、ページなどのリソースのロック要求がタイムアウトしたことを示します。 タイムアウトは @@LOCK_TIMEOUT システム関数で判定されます。また、SET LOCK_TIMEOUT ステートメントで設定できます。

Lock:Timeout イベント クラスを使用すると、タイムアウト状態がいつ発生するかを監視できます。 この情報は、タイムアウトがアプリケーションのパフォーマンスに重大な影響を与えるかどうかの判断と、関係しているオブジェクトの特定に役立ちます。 これらのオブジェクトを変更するアプリケーション コードを調べて、タイムアウトを最小限に抑える変更を行えるかどうかを判断できます。

一般的に、Lock:Timeout イベントの継続時間が 0 になるのは内部ロック調査の結果であり、必ずしも問題を示すわけではありません。 Lock:Timeout (timeout > 0) イベントを使用すると、期間が 0 のタイムアウトを無視できます。

Lock:Timeout イベント クラスのデータ列

データ列名 データ型 説明 列 ID フィルターの適用
ApplicationName nvarchar SQL Serverのインスタンスへの接続を作成したクライアント アプリケーションの名前。 この列には、プログラムの表示名ではなく、アプリケーションによって渡された値が格納されます。 10 はい
BinaryData image ロック リソース ID。 2 はい
ClientProcessID int クライアント アプリケーションが実行されているプロセスに対し、ホスト コンピューターが割り当てた ID。 クライアントによりクライアント プロセス ID が指定されると、このデータ列に値が格納されます。 9 はい
DatabaseID int ロックのタイムアウトが発生したデータベースの ID。 SQL Server プロファイラー では、ServerName データ列がトレースにキャプチャされ、そのサーバーが利用可能な場合、データベースの名前が表示されます。 データベースに対応する値は、DB_ID 関数を使用して特定します。 3 はい
DatabaseName nvarchar タイムアウトが発生したデータベースの名前。 35 はい
Duration bigint ロック要求が発行されてからロックがタイムアウトしたときまでの時間 (マイクロ秒)。 13 はい
EndTime datetime イベントの終了時刻。 15 はい
EventClass int イベントの種類 = 27。 27 いいえ
EventSequence int 要求内の特定のイベントのシーケンス。 51 いいえ
GroupID int SQL トレース イベントが発生したワークロード グループの ID。 66 はい
HostName nvarchar クライアントが実行されているコンピューターの名前。 このデータ列にはクライアントからホスト名が提供されている場合に値が格納されます。 ホスト名を指定するには、HOST_NAME 関数を使用します。 8 はい
IntegerData2 int 単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。 55 はい
IsSystem int イベントがシステム プロセスとユーザー プロセスのどちらで発生したか。 1 はシステム、0 はユーザーです。 60 はい
LoginName nvarchar ユーザーのログイン名 ( SQL Server セキュリティ ログインまたは DOMAIN\username という形式の Microsoft Windows ログイン資格情報)。 11 はい
LoginSid image ログイン ユーザーのセキュリティ ID 番号 (SID)。 この情報は、sys.server_principals カタログ ビューで参照できます。 各 SID はサーバーのログインごとに一意です。 41 はい
モード int タイムアウト後のモード。

0 = NULL - 他のすべてのロック モードと互換性あり (LCK_M_NL)

1 = スキーマ安定度ロック (LCK_M_SCH_S)

2 = スキーマ変更ロック (LCK_M_SCH_M)

3 = 共有ロック (LCK_M_S)

4 = 更新ロック (LCK_M_U)

5 = 排他ロック (LCK_M_X)

6 = インテント共有ロック (LCK_M_IS)

7 = インテント更新ロック (LCK_M_IU)

8 = インテント排他ロック (LCK_M_IX)

9 = 更新のためのインテント付き共有 (LCK_M_SIU)

10 = インテント排他付き共有 (LCK_M_SIX)

11 = インテント排他付き更新 (LCK_M_UIX)

12 = 一括更新ロック (LCK_M_BU)

13 = 共有キー範囲/共有 (LCK_M_RS_S)

14 = 共有キー範囲/更新 (LCK_M_RS_U)

15 = キー範囲挿入/NULL (LCK_M_RI_NL)

16 = 挿入キー範囲/共有 (LCK_M_RI_S)

17 = 挿入キー範囲/更新 (LCK_M_RI_U)

18 = 挿入キー範囲/排他 (LCK_M_RI_X)

19 = 排他キー範囲/共有 (LCK_M_RX_S)

20 = 排他キー範囲/更新 (LCK_M_RX_U)

21 = 排他キー範囲/排他 (LCK_M_RX_X)
32 はい
NTDomainName nvarchar ユーザーが所属する Windows ドメイン。 7 はい
NTUserName nvarchar Windows のユーザー名。 6 はい
ObjectID int タイムアウトしたオブジェクトの ID (使用可能かつ適用可能な場合)。 22 はい
ObjectID2 bigint 関連するオブジェクトまたはエンティティの ID (使用可能かつ適用可能な場合)。 56 はい
OwnerID int 1 = TRANSACTION

2 = CURSOR

3 = SESSION

4 = SHARED_TRANSACTION_WORKSPACE

5 = EXCLUSIVE_TRANSACTION_WORKSPACE
58 はい
RequestID int ステートメントが含まれている要求の ID。 49 はい
ServerName nvarchar トレースされている SQL Server のインスタンスの名前。 26 いいえ
SessionLoginName nvarchar セッションを開始したユーザーのログイン名。 たとえば、Login1 を使用して SQL Server に接続し、Login2 でステートメントを実行すると、SessionLoginName には Login1 が表示され、LoginName には Login2 が表示されます。 この列には、 SQL Server ログインと Windows ログインの両方が表示されます。 64 はい
SPID int イベントが発生したセッションの ID。 12 はい
StartTime datetime イベントの開始時刻 (取得できた場合)。 14 はい
TextData ntext タイムアウトが発生したときに取得されていたロックの種類に依存するテキスト値。 1 はい
TransactionID bigint システムによって割り当てられたトランザクション ID。 4 はい
Type int 1 = NULL_RESOURCE

2 = DATABASE

3 = FILE

5 = OBJECT

6 = PAGE

7 = KEY

8 = EXTENT

9 = RID

10 = APPLICATION

11 = METADATA

12 = AUTONAMEDB

13 = HOBT

14 = ALLOCATION_UNIT
57 はい

参照

sp_trace_setevent (Transact-SQL)
Lock:Timeout (timeout > 0) イベント クラス
sys.dm_tran_locks (Transact-SQL)