1

SQL Server プロファイラーの実行中に、いくつかの Lock:Escalation に達しました。Lock:Escalation イベントと同じ SPID を持つステートメントを検索したところ、delete ステートメントの 1 つがこれを引き起こしていることがわかりました。

そのような場所でロックのエスカレーションが発生する理由を調べる方法はありますか?

ステートメントは次のようになります。

delete from BOOK_IN_LIBRARY where libraryId in (,,,,); <-20 elements ids

CREATE TABLE BOOK_IN_LIBRARY(
[libraryId] [bigint] NOT NULL,
[bookId] [bigint] NULL,
[otherData] [bigint]NULL,
[otherData2] [int] NULL,
[otherData3] [int] NOT NULL,
PRIMARY KEY CLUSTERED
(
[libraryId] ASC,
[bookId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
4

2 に答える 2

0

これらの ID を 20 個削除すると、最大 68000 行が削除されます。ステートメントが行ロックのしきい値を超えた後、データベースはロックのエスカレーションを作成します。詳細情報ロック エスカレーション (データベース エンジン)JamesZコメントのおかげで答えが得られました。ありがとうございました!

于 2015-06-19T13:19:55.390 に答える