私は現在、私のウェブサイトで厄介な問題を調査しています。ウェブサイトで定期的に賞品を提供していますが、コンテストに参加するにはログインする必要があります。そのため、ウェブサイトは時々非常に忙しくなります。多くの人がログインして登録しようとすると、UpdateUser、CheckPassword、および GetUser関数のデッドロックに関する大量のエラーが発生し、サーバーがビジー状態になり、他の要求がタイムアウトし始めることがわかりました。
ストアド プロシージャを調べると、'UpdateUser' で ROWLOCK が使用されていることがわかりました。これらの ROWLOCK がデッドロックの原因ですか? または、選択だけでデッドロックが発生しますか?
自分の状況でNOLOCKを使おうと思っていたのですが、ちょっと調べてみると、どうやらお勧めできないようです...