0

私は、数十億行のテーブルがたくさんある巨大なデータベースを使用するアプリケーションに取り組んでいます。私は世界中に分散した開発チームを持っています。さまざまな目的で本番データベースにアクセスする必要があります。DB への読み取り専用アクセス許可が付与されています。クエリを使用すると正常に動作しますwith (nolock)。ただし、使用していない場合はnolock、終わりのないクエリを実行してアプリケーション全体をダウンさせることができます。昨年は数回発生したため、新しい開発者に許可を与えることをためらっています。

テーブルごとにビューを作成し、with (nolock)それらのビューのみにアクセス許可を付与することが 1 つの解決策であることはわかっていますが、どういうわけか、この目的のために 200 個のビューを作成する気がしません。

私は次の方法を探しています:

  1. すべてのクエリがそのユーザーに対してロックなしで実行される方法で権限を付与する
  2. ユーザーに使用を強制するwith (nolock)

SQL Server 2008 R2 を使用しています。

PS: このアプリケーションよりも 50 倍大きい別の Oracle ベースのアプリケーションで、これまでこの問題に直面したことはありません。

4

1 に答える 1