1) Ja , eine Auswahl mit NOLOCK
wird schneller abgeschlossen als eine normale Auswahl.
2) Ja , mit einer Auswahl mit NOLOCK
können andere Abfragen für die betroffene Tabelle schneller als mit einer normalen Auswahl abgeschlossen werden.
Warum sollte das so sein?
NOLOCK
In der Regel (abhängig von Ihrer DB-Engine) bedeutet dies, dass Sie mir Ihre Daten geben. Es ist mir egal, in welchem Zustand sie sich befinden, und Sie müssen sie nicht stillhalten, während Sie daraus lesen. Es ist auf einmal schneller, weniger ressourcenintensiv und sehr, sehr gefährlich.
Sie sollten gewarnt werden, niemals ein Update von oder etwas Systemkritisches durchzuführen oder wenn absolute Korrektheit unter Verwendung von Daten erforderlich ist, die aus einem NOLOCK
Lesevorgang stammen. Es ist absolut möglich, dass diese Daten Zeilen enthalten, die während der Ausführung der Abfrage gelöscht wurden oder die in anderen Sitzungen gelöscht wurden, die noch abgeschlossen werden müssen. Möglicherweise enthalten diese Daten Zeilen, die teilweise aktualisiert wurden. Möglicherweise enthalten diese Daten Datensätze, die gegen Fremdschlüsseleinschränkungen verstoßen. Es ist möglich, dass diese Daten Zeilen ausschließen, die der Tabelle hinzugefügt wurden, aber noch festgeschrieben werden müssen.
Sie haben wirklich keine Möglichkeit zu wissen, wie der Status der Daten ist.
Wenn Sie versuchen, Dinge wie eine Zeilenanzahl oder andere Zusammenfassungsdaten zu erhalten, bei denen eine gewisse Fehlerquote akzeptabel ist, dann NOLOCK
ist, können Sie die Leistung dieser Abfragen steigern und vermeiden, dass sie sich negativ auf die Datenbankleistung auswirken.
Verwenden Sie den NOLOCK
Hinweis immer mit großer Vorsicht und behandeln Sie alle zurückgegebenen Daten verdächtig.