Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 8936|Antwort: 0

SQL locks NOLOCK, HOLDLOCK, UPDLOCK, TABLOCK, TABLOCKX

[Link kopieren]
Veröffentlicht am 20.07.2016 14:02:51 | | |

NOLOCK
Wenn diese Option ausgewählt ist, liest oder verändert SQL Server Daten ohne jegliche Sperren. In diesem Fall kann der Benutzer Daten aus einer nicht gebundenen Transaktion oder einem Rollback, bekannt als "Dirty Data", lesen.

HOLDLOCK
Wenn diese Option ausgewählt ist, hält SQL Server diese geteilte Sperre bis zum Ende der gesamten Transaktion aufrecht, ohne sie unterwegs freizugeben.

UPDLOCK
Wenn diese Option ausgewählt ist, verwendet SQL Server beim Lesen der Daten ein Modified-Lock anstelle eines gemeinsamen Locks und hält dieses Lock bis zum Ende der gesamten Transaktion oder des Befehls aufrecht. Diese Option stellt sicher, dass mehrere Prozesse gleichzeitig Daten lesen können, aber nur dieser Prozess die Daten ändern kann.

TABLOCK
Wenn diese Option ausgewählt ist, legt SQL Server eine gemeinsame Sperre auf die gesamte Tabelle, bis der Befehl endet. Diese Option stellt sicher, dass andere Prozesse die Daten nur lesen und nicht verändern können.

PAGLOCK
Diese Option ist die Standardoption, und wenn ausgewählt, verwendet SQL Server eine geteilte Seitensperre.

TABLOCKX (Exklusives Tischschloss)
Wenn diese Option ausgewählt ist, setzt SQL Server eine Sperre auf die gesamte Tabelle, bis der Befehl oder die Transaktion endet. Dies verhindert, dass andere Prozesse die Daten in der Tabelle lesen oder verändern.

HOLDLOCK hält das geteilte Schloss, bis die gesamte Transaktion abgeschlossen ist, und sollte freigegeben werden, sobald das gesperrte Objekt nicht mehr benötigt wird, entsprechend dem SERIALIZABLE-Transaktionsisolationsniveau

Die NOLOCK-Anweisung wird ausgeführt, ohne eine gemeinsame Sperre auszustellen, was Dirty Reads erlaubt, was dem READ UNCOMMITTED Transaktionsisolationslevel entspricht

PAGLOCK verwendet mehrere Seitensperren, bei denen eine Tabellensperre verwendet wird

READPAST erlaubt es dem SQL-Server, alle gesperrten Zeilen zu überspringen und Transaktionen auszuführen, und bei READ UNCOMMITTED Transaktionsisolationsstufen nur RID-Sperren zu überspringen, nicht Seiten-, Zonen- und Tabellensperren

ROWLOCK erzwingt die Verwendung von Rowlocks

TABLOCKX erzwingt die Verwendung einer exklusiven Tabellensperre, die verhindert, dass andere Transaktionen die Tabelle während der Transaktion verwenden

UPLOCK erzwingt die Verwendung von Updates beim Lesen einer Tabelle ohne geteilte Sperre

Hinweis: Der Unterschied zwischen dem Sperren einer Tabelle in einer Datenbank
AUSWÄHLEN * AUS der Tabelle MIT (HOLDLOCK) Andere Transaktionen können die Tabelle lesen, können aber nicht aktualisieren oder löschen
AUSWÄHLEN * AUS der Tabelle MIT (TABLOCKX) Andere Transaktionen können keine Tabellen lesen, aktualisieren und löschen




Vorhergehend:Sperren, verschmutzte Lesungen, nicht wiederholbare Lesungen und falsche Lesungen in SQL
Nächster:SQL Server schaut sich die Deadlock an und löst sie auf
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com