Ho una sequenza che genera numeri di tracciamento per oggetti nel mio sistema. Funzionava bene da un po 'di tempo.
La scorsa settimana abbiamo notato che stava iniziando a riutilizzare i valori.
Ciò che sembra accadere è che in diversi punti della sera, tornerà a un valore che aveva il giorno precedente. Continuerà quindi a generare valori da quel punto.
Quindi per esempio potrei ottenere qualcosa del genere:
10112
10113
10114
10115
10116
10117
10118
10113
10114
10115
10116
...
Non sembra esserci alcun modello nel momento in cui accade, durata tra il primo utilizzo e il secondo utilizzo (fino a 10 minuti o diverse ore) o il numero di rollback (da 1 a un massimo di diverse centinaia).
Ho pensato di eseguire una traccia (e ancora può), ma non credo che l'oggetto sequenza venga modificato direttamente. Il motivo per cui credo sia che la data di modifica risale a diversi giorni fa e indica un momento in cui abbiamo aumentato manualmente il valore per cercare di eliminare i duplicati. (E il problema si è verificato più volte da allora.)
Qualcuno ha un'idea di cosa potrebbe causare un rollback della sequenza e riutilizzare i valori ogni notte?
AGGIORNAMENTO: per rispondere ad alcune domande nei commenti:
@@Version
:Microsoft SQL Server 2012 (SP1) - 11.0.3000.0 (X64) 19 ottobre 2012 13:38:57
Crea script:
CREATE SEQUENCE [schemaName].[SequenceName] AS [bigint] START WITH 410014104 INCREMENT BY 1 MINVALUE 410000000 MAXVALUE 419999999 CYCLE CACHE GO
Non ho un vincolo unico (ma ho intenzione di metterne uno). Tuttavia, ciò mi aiuterà a sapere solo quando ho riutilizzato un valore. Non è ciò che ha causato il ripristino dei valori. Ho inserito un lavoro che otterrebbe un nuovo valore ogni 5 minuti e lo salverò. I tempi e i salti di valore non seguono uno schema.
- Ho controllato i registri eventi per vedere se c'è un errore. L'unica cosa che sta accadendo è questa: http://support.microsoft.com/kb/2793634 Oggi applichiamo la correzione. Non penso che siano correlati, ma potrebbe essere.
@@VERSION
? Inoltre è cambiato qualcosa sull'ambiente? C'è un elemento di connessione che riporta qualcosa di simile. L'OP ritiene che fosse associato11.0.3000.0