Ich bin in einer Deadlock-Analyse zu einem toten Punkt gekommen. Laut msdn :
RangeX-X sind exklusive Range- und exklusive Ressourcensperre. Wird beim Aktualisieren eines Schlüssels in einem Bereich verwendet. RangeI-N sind Insert Range, Null Resource Lock; Wird zum Testen von Bereichen verwendet, bevor ein neuer Schlüssel in einen Index eingefügt wird.
Ich verstehe also, dass ich, wenn ich einen Index für 2 Schlüsselspalten habe - und einen neuen Schlüssel einfüge, die RangeI-N-Sperre hätte, aber wenn ich einen vorhandenen Schlüssel aus dem Index aktualisiere, RangeX-X hätte.
Aber meine Frage ist mehr oder weniger kompliziert. Angenommen, ich habe den Index IX_keys_included in Spalte A, B und eingeschlossene Spalte C.
Im serialisierbaren Isolationsmodus füge ich einen neuen Wert für die enthaltene Spalte C ein. Gibt es RangeI-N- oder RangeX-X-Sperren für den Index IX_keys_included? Wird es tatsächlich Sperren geben, da ich eine neue Spalte für eine eingeschlossene Spalte in den Index einfüge?
quelle
Überprüfen Sie diesen Link , wie es aussieht, ist eine Absichts-Exklusiv-Sperre (IX) mit einer RI-N- und RX-X-Sperre illegal. Oder ich bin abseits der Basis und habe wirklich überhaupt nicht geholfen. Ich habe die Tabelle im Druckbuch Professional SQL Server 2008 Internals and Troubleshooting gefunden .
quelle