Beachten Sie, dass Sie nolock auf einer Tabelle pro Tabelle angeben können.
Normalerweise verwendete ich Nolock in komplexen SELECT-Abfragen, aber nur für die kleinen Nachschlagetabellen, die fast nie geändert wurden, und für reine Anzeigedaten. Sie kennen die Tabellen, die die Preise für das aktuelle halbe Jahr auflisten, oder die Suche nach IDs nach Zeichenfolgen usw. Dinge, die sich nur mit großen Updates ändern, nach denen die Server normalerweise routinemäßig trotzdem neu gestartet werden.
Diese verbesserte Leistung signifikant, reduziert die Wahrscheinlichkeit von Deadlocks in den verkehrsreichsten Zeiten, und noch wichtiger war es in den schlimmsten Fällen für Abfragen, die viele Tabellen berührt (was logisch ist, müssen sie weniger Sperren erhalten) , und diese Beilagen werden oft fast überall verwendet, oft von 7-8 bis 4 Tabellen, die gesperrt werden müssen)
Aber seien Sie sehr vorsichtig hinzufügen, es nicht überstürzen, und tun Sie es nicht routinemäßig. Es wird nicht schaden, wenn es richtig benutzt wird, aber es wird furchtbar weh tun, wenn es unsachgemäß benutzt wird.
Verwenden Sie es nicht für hochkritisches Zeug, Zeug, das usw. berechnet, weil es inkonsistent wird, alles, was früher oder später zu einem Schreiben führt.
Eine andere solche Optimierung ist ROWLOCK, die nur auf Zeilenebene sperrt. Dies ist vor allem beim Aktualisieren (oder Löschen von) von Tabellen hilfreich, in denen die Zeilen nicht miteinander verwandt sind, wie Tabellen, in denen Sie nur Protokollsätze eingeben (und die Reihenfolge, in der sie eingefügt werden, spielt keine Rolle). Wenn Sie ein Schema haben, dass irgendwo am Ende einer Transaktion ein Protokollsatz in eine Tabelle geschrieben wird, kann sich dies ebenfalls erheblich beschleunigen.
Wenn Ihre Datenbank einen relativ niedrigen Prozentsatz an Schreibvorgängen hat, lohnt es sich möglicherweise nicht. Ich hatte ein Lese-Schreib-Verhältnis von unter 2: 1.
Einige URLs ich gespeichert, wenn die Arbeit an diesem:
http://www.developerfusion.com/article/1688/sql-server-locks/4/
Der Ausfall fehlgeschlagener Transaktionen kann auch ziemlich schlecht sein. Wenn Sie Nolock studieren, sind Sie nicht in der idealen Situation, um damit zu beginnen. –