次の方法で共有


Lock:Timeout イベント クラス

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

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

時間が 0 の Lock:Timeout イベントは、通常、内部ロック プローブの結果であり、必ずしも問題を示すものではありません。 Lock:Timeout (timeout > 0) イベントを使用すると、期間が 0 のタイムアウトを無視できます。

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

データ列名 データの種類 説明 列 ID フィルターの適用
アプリケーション名 nvarchar SQL Server のインスタンスへの接続を作成したクライアント アプリケーションの名前。 この列には、プログラムの表示名ではなく、アプリケーションによって渡された値が格納されます。 10 イエス
BinaryData image リソース識別子をロックします。 2 イエス
ClientProcessID int クライアント アプリケーションが実行されているプロセスに対し、ホスト コンピューターが割り当てた ID。 クライアントによりクライアント プロセス ID が指定されると、このデータ列に値が格納されます。 9 イエス
データベースID int ロック タイムアウトが発生したデータベースの ID。 SQL Server Profiler では、 ServerName データ列がトレースにキャプチャされ、そのサーバーが利用可能な場合、データベースの名前が表示されます。 データベースに対応する値は、DB_ID 関数を使用して特定します。 3 イエス
データベース名 nvarchar タイムアウトが発生したデータベースの名前。 35 イエス
期間 bigint ロック要求が発行されてからロックがタイムアウトした時間 (マイクロ秒単位)。 13 イエス
終了時間 datetime イベントの終了時刻。 15 イエス
EventClass int イベントの種類 = 27。 二十七 いいえ
イベントシーケンス int 要求内の特定のイベントのシーケンス。 51 いいえ
グループID int SQL トレース イベントが発生したワークロード グループの ID。 66 イエス
ホストネーム nvarchar クライアントが実行されているコンピューターの名前。 このデータ列にはクライアントからホスト名が提供されている場合に値が格納されます。 ホスト名を指定するには、 HOST_NAME 関数を使用します。 8 イエス
IntegerData2 int 単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。 55 イエス
IsSystem int イベントがシステム プロセスとユーザー プロセスのどちらで発生したか。 1 はシステム、0 はユーザーです。 六十 イエス
ログイン名 nvarchar ユーザーのログインの名前 (SQL Server セキュリティ ログインまたは DOMAIN\username の形式の Microsoft Windows ログイン資格情報)。 11 イエス
ログインSID 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 イエス
NTドメインネーム nvarchar ユーザーが所属する Windows ドメイン。 7 イエス
NTユーザー名 (NTUserName) nvarchar Windows のユーザー名。 6 イエス
オブジェクトID int タイムアウトしたオブジェクトの ID (使用可能で該当する場合)。 22 イエス
ObjectID2 bigint 関連するオブジェクトまたはエンティティの ID (使用可能で該当する場合)。 56 イエス
オーナーID int 1 = トランザクション

2=カーソル

3=SESSION

4 = 共有取引作業領域

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

2=データベース

3=ファイル

5=OBJECT

6=ページ

7=キー

8=範囲

9=RID

10=アプリケーション

11=METADATA

12=AUTONAMEDB

13=HOBT

14=ALLOCATION_UNIT
五十七 イエス

こちらもご覧ください

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