Meines Wissens ist der einzige Unterschied der Umfang der Auswirkungen, wie Strommy sagte. NOLOCK-Hinweis auf eine Tabelle und READ UNCOMMITTED in der Sitzung.
Bei Problemen, die auftreten können, dreht sich alles um Konsistenz. Wenn Sie sich darum kümmern, sollten Sie sich darüber im Klaren sein, dass Sie sogenannte Dirty Reads erhalten können, die andere Daten beeinflussen können, die aufgrund falscher Informationen manipuliert werden.
Ich persönlich glaube nicht, dass ich irgendwelche Probleme damit gesehen habe, aber das kann eher daran liegen, wie ich Nolock benutze. Sie müssen sich bewusst sein, dass es Szenarien gibt, in denen die Verwendung in Ordnung ist. Szenarien, in denen Sie meistens neue Daten zu einer Tabelle hinzufügen, aber einen anderen Prozess hinter sich haben, um nach einem Datenszenario zu suchen. Das wird wahrscheinlich in Ordnung sein, da der Hauptfluss nicht das Zurückgehen und Aktualisieren von Zeilen während eines Lesevorgangs umfasst.
Ich glaube auch, dass Sie sich heutzutage mit der Parallelitätskontrolle für mehrere Versionen befassen sollten. Ich glaube, sie haben es 2005 hinzugefügt und es hilft den Autoren, Leser nicht zu blockieren, indem es den Lesern einen Schnappschuss der zu verwendenden Datenbank gibt. Ich werde einen Link einfügen und dem Leser weitere Nachforschungen überlassen:
MVCC
Datenbankisolationsstufen
REPEATABLE READ
stattdessen,SERIALIZABLE
ob Sie sich nicht für Phantomdaten interessieren.SERIALIZABLE
ist WIRKLICH restriktiv und sollte fast nie verwendet werden (außer zum Beispiel in einigen kritischen Finanzanwendungen).