Lock:Timeout イベント クラス
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。ServerName データ列がトレースでキャプチャされていて、サーバーが使用できる場合、SQL Server Profiler にデータベースの名前が表示されます。データベースに対応する値は、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 |
可 |
Mode |
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 |
可 |