質問

次の更新ステートメントが与えられました:

UPDATE @TableVariable
SET city = T2.city
FROM @TableVariable TV
INNER JOIN dbo.TABLE_1 T1 WITH (NOLOCK)
    ON  (TV.customer_id = T1.customer_id)
INNER JOIN dbo.TABLE_2 T2 WITH (NOLOCK)
    ON  (T1.address_id = T2.address_id)

(nolock)はtable_1とtable_2のヒントを尊重しますか?

役に立ちましたか?

解決

(nolock)はtable_1とtable_2のヒントを尊重しますか?

はい、彼らはそうするでしょう。

一般的に、この動作はそうであることに注意してください 大きな過ち そして、あなたが本当にこれを必要としていると思うなら、おそらく、あなたはあなたのデータベースやアプリを再設計する必要があります。

の目的は何ですか NOLOCK ヒント?なぜ汚いデータでテーブル変数を更新したいのですか?

他のヒント

Nolockは、ほぼ何らかの形でサーバーの生産性を高めます。ただし、(nolock)ヒントは、データへのアクセスがその時点で変更されないように十分に保証されている場合に安全に使用できます(たとえば、データ部分がdbに投稿されると、変更されないか、データの現在の部分が変更されないことがわかっています。他のユーザーによって)または古いデータや新しいデータを取得することが重要でない場合(たとえば、一部のデータは多くの場合変更され、最新のデータを正確に保存する必要はありません)。他の方法では、さまざまなテーブルでデータが発散する可能性があります...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top