Het belangrijkste doel van sequenties is om een bron van gegarandeerde . te bieden unieke identificatiecodes. Dit zijn technische sleutels en in het algemeen zou hun werkelijke waarde niet relevant moeten zijn. Ik bedoel - moet je zelfs het mapnummer aan de gebruiker laten zien?
Als je daar last van hebt, gebruik dan NOCACHE. Dat minimaliseert de hiaten die u ziet, en zolang u niet vaak mappen maakt, zult u de prestatiehit niet opmerken door het niet opslaan van een handvol slappe nummers. U kunt nog steeds hiaten krijgen als een transactie wordt teruggedraaid of om een andere reden mislukt, maar deze zouden zeldzaam moeten zijn; als dat niet het geval is, heeft u grotere zorgen dan de nummering van uw mappen!
Andere manieren om een monotoon oplopende reeks te genereren zijn ofwel omslachtig om te implementeren (triggers over codecontroletabellen) of niet gegarandeerd uniek te zijn (met behulp van max(id)+1
in een trigger). Als u een codecontroletabel wilt gebruiken - dat is een tabel die specifiek de laatst toegewezen map-ID bijhoudt - moet u eens kijken op een eerder antwoord schreef ik
die moet hoe een te implementeren. Het enige voordeel van een codecontroletabel is dat we met een groep tellingen kunnen bijhouden. U kunt dus een reeks map-ID's voor elke gebruiker hebben en deze afzonderlijk verhogen.