SQL Serverでデッドロックなしでキーテーブルへの同時アクセスを処理する
IDENTITY他のさまざまなテーブルのフィールドの代わりとしてレガシーアプリケーションで使用されるテーブルがあります。 テーブルの各行にはLastID、で名前が付けられたフィールドで最後に使用されたIDが格納されIDNameます。 ストアドプロシージャがデッドロックを取得することがあります-適切なエラーハンドラを作成したと思います。しかし、この方法論が思うように機能するかどうか、またはここで間違ったツリーを探しているかどうかに興味があります。 デッドロックがまったくない状態でこのテーブルにアクセスする方法があるはずです。 データベース自体はで構成されREAD_COMMITTED_SNAPSHOT = 1ます。 まず、表を次に示します。 CREATE TABLE [dbo].[tblIDs]( [IDListID] [int] NOT NULL CONSTRAINT PK_tblIDs PRIMARY KEY CLUSTERED IDENTITY(1,1) , [IDName] [nvarchar](255) NULL, [LastID] [int] NULL, ); そして、IDNameフィールドの非クラスター化インデックス: CREATE NONCLUSTERED INDEX [IX_tblIDs_IDName] ON [dbo].[tblIDs] ( [IDName] ASC ) WITH ( PAD_INDEX = OFF , STATISTICS_NORECOMPUTE = OFF , …