毎日、SQL Server スクリプトを実行してテーブルを更新しています。週に一度、データベースのデッドロックの犠牲者になります。何人かの人々がデータベースにアクセスできますが、更新中はデータベースにアクセスしてはならないことを全員が知っています。しかし、更新中に誰かがデータベースにアクセスしており、デッドロックが発生しています。デッドロックの犠牲者になるのを避ける方法はありますか? デッドロック優先度について聞いたことがあります。デッドロックの優先度を 10 に設定すると役に立ちますか? デッドロックの優先度を使用することによるパフォーマンスの問題や結果はありますか?
2 に答える
1
他のプロセスのデッドロック優先度が 10 未満であると仮定すると、デッドロックの解決に勝つことができます。
セッションのデッドロックの優先度が異なる場合、デッドロックの優先度が最も低いセッションがデッドロックの犠牲者として選択されます。
http://msdn.microsoft.com/en-us/library/ms186736.aspx
もちろん、更新中に他のユーザーから更新権限を削除するスクリプトをいつでも実行できます...
于 2013-01-10T21:28:04.657 に答える
0
何人かの人々がデータベースにアクセスでき、データベースの更新中にデータベースにアクセスすることは想定されていないことを全員が知っています。
DBをシングルユーザーに配置し、更新とマルチユーザーへの復帰を1回のトランザクションで実行しないのはなぜですか?
ラージ
于 2013-01-11T03:51:51.740 に答える