Heim >Datenbank >MySQL-Tutorial >Warum überspringt meine SQL Server 2012-Identitätsspalte Inkremente?
Überspringen von SQL Server 2012-Identitätsspalteninkrementen: Ein häufiges Problem
Die automatisch inkrementierenden Identitätsspalten von SQL Server 2012 können unerwartetes Verhalten zeigen – sporadisches Überspringen von Inkrementen. Dadurch wird die fortlaufende Nummerierung der Datensätze gestört, was zu Lücken in den ID-Werten Ihrer Tabelle führt.
Dieses Problem ist auf die Einführung von Sequenzen in SQL Server 2012 zurückzuführen. Sequenzen verbessern die Leistung und Skalierbarkeit der Identitätsgenerierung, diese Verbesserung kann jedoch dazu führen, dass Inkremente offensichtlich übersprungen werden.
Das scheinbare Überspringen verstehen
Wenn eine Sequenz eine Identitätsspalte verwaltet, weist sie vorab einen Zahlenbereich zu. Neue Datensätze erhalten Werte aus diesem Bereich. Wenn der zugewiesene Bereich den unmittelbaren Bedarf übersteigt, entsteht die Illusion übersprungener Zahlen, obwohl die zugrunde liegende Sequenz ordnungsgemäß funktioniert.
Lösungen zur Aufrechterhaltung sequentieller Inkremente
Um das streng sequentielle Inkrementierungsverhalten älterer SQL Server-Versionen wiederherzustellen, ziehen Sie diese Optionen in Betracht:
NO CACHE
. Dies verhindert eine Vorbelegung großer Nummernbereiche und gewährleistet eine sequentielle Belegung.Zusammenfassung
Das wahrgenommene Überspringen von Identitätsspalteninkrementen in SQL Server 2012 ist ein Nebenprodukt der Sequenzoptimierung. Wenn Sie diesen Mechanismus verstehen und die vorgeschlagenen Lösungen verwenden, können Sie sequentielle IDs beibehalten, ohne die Leistungsvorteile von Sequenzen zu beeinträchtigen.
Das obige ist der detaillierte Inhalt vonWarum überspringt meine SQL Server 2012-Identitätsspalte Inkremente?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!