Nella dichiarazione UPDATE, sono NOLOCK suggerimento onorato nella clausola FROM?
-
28-09-2019 - |
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?
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
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 ...