Ich habe eine Sequenz, die Tracking-Nummern für Objekte in meinem System generiert. Es hatte schon seit einiger Zeit gut funktioniert.
Letzte Woche haben wir festgestellt, dass die Werte wieder verwendet werden.
Was zu passieren scheint, ist, dass es zu verschiedenen Zeitpunkten am Abend auf einen Wert zurückgesetzt wird, den es am Vortag hatte. Ab diesem Punkt werden dann weiterhin Werte generiert.
So könnte ich zum Beispiel so etwas bekommen:
10112
10113
10114
10115
10116
10117
10118
10113
10114
10115
10116
...
Es scheint kein Muster zu geben, wann es passiert, wie lange es zwischen der ersten und der zweiten Verwendung dauert (nur 10 Minuten oder mehrere Stunden) oder wie viele zurückgesetzt werden (nur 1 und mehrere hundert).
Ich habe darüber nachgedacht, einen Trace auszuführen (und kann es immer noch), aber ich glaube nicht, dass das Sequenzobjekt direkt geändert wird. Der Grund, warum ich glaube, ist, dass das Änderungsdatum mehrere Tage alt ist und auf eine Zeit verweist, in der wir den Wert manuell erhöht haben, um zu versuchen, Duplikate zu entfernen. (Und das Problem ist seitdem mehrmals aufgetreten.)
Hat jemand eine Vorstellung davon, was jeden Abend zu einem Rollback und einer Wiederverwendung von Sequenzwerten führen kann?
UPDATE: Um einige Fragen in den Kommentaren zu beantworten:
@@Version
::Microsoft SQL Server 2012 (SP1) - 11.0.3000.0 (X64) 19. Oktober 2012, 13:38:57 Uhr
Skript erstellen:
CREATE SEQUENCE [schemaName].[SequenceName] AS [bigint] START WITH 410014104 INCREMENT BY 1 MINVALUE 410000000 MAXVALUE 419999999 CYCLE CACHE GO
Ich habe keine eindeutige Einschränkung (aber ich habe vor, eine anzuziehen). Dies hilft mir jedoch nur zu wissen, wann ich einen Wert wiederverwendet habe. Nicht, was dazu führte, dass die Werte zurückgesetzt wurden. Ich habe einen Job vergeben, der alle 5 Minuten einen neuen Wert erhält und ihn spart. Die Zeiten und Wertsprünge folgen keinem Muster.
- Ich habe die Ereignisprotokolle überprüft, um festzustellen, ob ein Fehler vorliegt. Der einzige Gedanke, der passiert, ist folgender: http://support.microsoft.com/kb/2793634 Wir wenden das Update heute an. Ich denke nicht, dass diese verwandt sind, aber es könnte sein.
@@VERSION
? Hat sich auch etwas an der Umwelt geändert? Es gibt ein Verbindungselement, das etwas Ähnliches meldet. Das OP dort rechnet damit, dass es in Verbindung gebracht wurde11.0.3000.0