上記の質問がありました。アプリケーション全体で nolock を使用しています。場合によっては、結果がどうであれ、より速く選択する必要があります。
それでselect with(TABLOCKX)
速くなりますかwith(nolock)
?
上記の質問がありました。アプリケーション全体で nolock を使用しています。場合によっては、結果がどうであれ、より速く選択する必要があります。
それでselect with(TABLOCKX)
速くなりますかwith(nolock)
?
あなたの質問に答えるために、with (nolock)
表のヒントがより速くなります。
通常、NOLOCK (DB エンジンによって異なります) は、データを提供することを意味します。データの状態は気にしません。また、データを読み取っている間、データを静止させておく必要もありません。それは同時に高速で、リソースの消費が少なく、非常に危険です。
ここで非常によく説明されているようにNoLock
Nolock は、(共有ロックを使用して) ロックされた行を読み取ることができることを意味します。ただし、他のロックを待つ必要があります。
Tablockx は、他のクエリの排他ロックを使用してテーブル全体をブロックすることを意味します。他のセッションはロックを作成できません。テーブル全体をブロックした後にブロックすることはできません。Tablockx は主に迅速な挿入に使用されます。
どこでも nolock を使用しないでください。長時間の排他的ロックを回避するか、ブロックを最小限に抑えるようにしてください。そうすれば、nolocks は不要になります。