Domanda

Data la seguente dichiarazione di aggiornamento:

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)

Sarà il (NOLOCK) suggerimenti su TABLE_1 e TABLE_2 essere onorato?

È stato utile?

Soluzione

  

Sarà il (NOLOCK) suggerimenti su TABLE_1 e TABLE_2 essere onorato?

Sì, lo faranno.

Si noti che, in generale, questo comportamento è molto sbagliato e se pensate che si ha realmente bisogno di questo, molto probabilmente, si dovrebbe ridisegnare il database e / o app.

Qual è lo scopo dei suggerimenti NOLOCK? Perché si vuole aggiornare la variabile tabella con i dati sporca?

Altri suggerimenti

suggerimento

nolock quasi in qualsiasi aumentare la produttività del server modo. Tuttavia (NOLOCK) suggerimento può essere utilizzato in modo sicuro durante l'accesso ai dati è o garantito sufficienti per essere non cambiare in quel momento (per esempio, una volta porzione di dati viene registrato DB rimarrà invariato o si sa che parte corrente dei dati non sarà cambiato da altri utenti) o se non importa a prendere i dati vecchi o nuovi dati (ad esempio, alcuni dati cambia spesso e in ogni modo non v'è alcuna necessità di salvare esattamente quello più recente). In altro modo si può ottenere la divergenza dei dati in tabelle differenti ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top