0

アプリケーション フローのいくつかのレベルで、一意の顧客 ID によって顧客のステータスを更新する更新クエリがあります。アプリケーションログに次の例外が数回あります

トランザクションが別のプロセスとのロック リソースでデッドロックされ、デッドロックの犠牲者として選択されました。トランザクションを再実行します。

私の更新クエリは次のとおりです。

UPDATE customer SET status= ?  WHERE cust_id = ?

テーブルレベルのロックが原因だと思いますが、有効にしませんでした。私の質問は、テーブル レベルのロックがデフォルトで有効になっているということですか? 行レベルのロックを実装すると、この状況を解決するのに役立ちますか? このクエリの行レベル ロックを有効にするにはどうすればよいですか? ありがとう

4

1 に答える 1

0

これは遅すぎるかもしれませんが、ここでは何も起こりません。

テーブル レベルのロックは、SQL Server のデフォルトです。行レベルのロックはあなたの場合に役立ちますが、システムで使用可能なリソースが少なくなると、テーブル レベルのロックに移行し、問題が発生する可能性があります。

于 2016-04-22T07:52:08.050 に答える