Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Istruzioni SQL Server SELECT che causano il blocco

SELECT può bloccare gli aggiornamenti. Un modello di dati e una query progettati correttamente causeranno solo un blocco minimo e non costituiranno un problema. Il "solito" suggerimento WITH NOLOCK è quasi sempre la risposta sbagliata. La risposta corretta è ottimizzare la tua query in modo che non esegua la scansione di tabelle enormi.

Se la query non è sintonizzabile, dovresti prima considerare il livello di ISOLAMENTO ISTANTANEA , in secondo luogo dovresti prendere in considerazione l'utilizzo di ISNAPSHOT DI DATABASE e l'ultima opzione dovrebbe essere LETTURE SPORCHE (ed è meglio cambiare livello di isolamento piuttosto che usare il SUGGERIMENTO NOLOCK). Nota che le letture sporche, come dice chiaramente il nome, restituiranno dati incoerenti (ad es. il tuo foglio totale potrebbe essere sbilanciato).