Einfache Antwort: immer dann, wenn Ihr SQL keine Daten ändert und Sie eine Abfrage haben, die andere Aktivitäten beeinträchtigen könnte (durch Sperren).
Es lohnt sich, dies bei allen Abfragen für Berichte in Betracht zu ziehen, insbesondere wenn die Abfrage mehr als, sagen wir, 1 Sekunde dauert.
Dies ist besonders nützlich, wenn Sie OLAP-artige Berichte gegen eine OLTP-Datenbank laufen lassen.
Die erste Frage, die man sich stellen sollte, ist jedoch: "Warum mache ich mir darüber Gedanken?" Meiner Erfahrung nach wird das Standard-Sperrverhalten oft manipuliert, wenn jemand im "Alles-ausprobieren"-Modus ist, und dies ist ein Fall, in dem unerwartete Konsequenzen nicht unwahrscheinlich sind. Allzu oft handelt es sich dabei um eine verfrühte Optimierung, die allzu leicht in eine Anwendung eingebettet werden kann, "nur für den Fall der Fälle". Es ist wichtig zu verstehen, warum man dies tut, welches Problem damit gelöst wird und ob man das Problem tatsächlich hat.
0 Stimmen
Ich habe eine Unterfrage gestellt in stackoverflow.com/questions/3836282/ y stackoverflow.com/questions/3836032/ meist Jonathan Allens Antwort stackoverflow.com/questions/686724/
1 Stimmen
Ein Link hier - mssqltips.com/sqlservertip/2470/
1 Stimmen
Hier ist eine hervorragende Zusammenfassung der Auswirkungen der Verwendung von NOLOCK blogs.msdn.com/b/davidlean/archive/2009/04/06/