SQL Server-Identitätslücken: Rollback-Auswirkungen verstehen
Unerwartete Lücken in den Identitätssequenzen (automatische Inkrementierung) von SQL Server können nach Transaktions-Rollbacks auftreten, insbesondere beim Umgang mit Einfügungen. Das ist kein Fehler; Es ist eine Designentscheidung, bei der die Leistung im Vordergrund steht.
Stellen Sie sich ein Szenario vor: Eine .NET-Transaktion wird mit einem Identitätsprimärschlüssel in eine SQL Server 2005-Tabelle eingefügt. Wenn ein Fehler ein Rollback()
auslöst, werden die eingefügten Zeilen entfernt. Der Identitätswert ist jedoch bereits erhöht, sodass eine Lücke entsteht.
Dieses nicht-transaktionale Verhalten verhindert Leistungsengpässe. Stellen Sie sich zwei gleichzeitige Transaktionen mit einer automatisch nummerierten ID in Tabelle A vor:
Wenn Transaktion 2 nach Transaktion 1 beginnt, muss sie auf den Abschluss von Transaktion 1 warten, um die nächste automatische Nummer für Tabelle A zu sichern. Der nicht-transaktionale Ansatz vermeidet diese Blockierung.
Wenn daher streng sequentielle Identitätswerte entscheidend sind, werden alternative Methoden empfohlen. Das Design des Systems priorisiert Parallelität gegenüber strikter fortlaufender Nummerierung.
Das obige ist der detaillierte Inhalt vonWarum treten nach Transaktions-Rollbacks SQL Server-Identitätslücken auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!