常に使用されている非常にアクティブなリモート データベースを検討します。約30mのレコードを 返す 2 つ以上のクエリを同時に実行すると、クエリでWITH(NOLOCK)を使用するとシステムが使用できなくなりますか?
非常にアクティブ:約 200 人のユーザーが、1 レコードのクエリから上記の最大数までさまざまなクエリを実行します。
定数: 18/7
使用不可: 5 ~ 15 分の遅延。外部アプリまたはユーザーが DB にアクセスしてクエリを実行できない。
常に使用されている非常にアクティブなリモート データベースを検討します。約30mのレコードを 返す 2 つ以上のクエリを同時に実行すると、クエリでWITH(NOLOCK)を使用するとシステムが使用できなくなりますか?
非常にアクティブ:約 200 人のユーザーが、1 レコードのクエリから上記の最大数までさまざまなクエリを実行します。
定数: 18/7
使用不可: 5 ~ 15 分の遅延。外部アプリまたはユーザーが DB にアクセスしてクエリを実行できない。
ダウンタイム「使用不可」を適切に調査する必要があります。推測は機能しません。次のように、サーバーが「使用不能」になる状況は数多くあります。
また、サーバーが単に「遅い」だけで、応答していないように見える場合もあります。nilly-willy 3000 万行のテーブルをスキャンする 200 のクエリは、スケジューラの枯渇につながる可能性があります。きちんと調べる必要があります。Waits and Queuesは、使用するのに適した方法です (たとえば、上記のスケジューラーの枯渇を正しく識別します)。
NOLOCK に関しては、NOLOCK を使用する正当な理由はありません。現在、ユーザーには正しくないデータが表示されます。代わりに行のバージョン管理を使用することを検討してください。