ロックとデッドロックを防ぐためWITH(NOLOCK)
に、ビュー内でテーブル ヒントを使用することにしました。
それは良い効果をもたらし、ユーザーはそれに満足していました.
これらのビューがアプリケーション (PIVOTAL と呼ばれる CRM アプリケーション) 内から呼び出されたときに問題が発生しました。
このアプリケーションがビュー (WITH(NOLOCK)
内部にあるビュー) をクエリすると、別の table lock が追加されますREADCOMMITTED
。
例えば:
select * from MY_view WITH(READCOMMITTED)
この結果、競合するロックについて知らせる SQL Server エラー メッセージが表示されます。
現在、アプリケーションとそのスクリプトの生成方法を変更することはできません。
以外のヒントを SQL Server に無視させる方法はありますMy_view
か? NOLOCK
を優勢にしてREADCOMMITTED
、それを維持できるようにする方法はありますMy_View
か?
ありがとうございます。マルチェロ