sql >> Databasteknik >  >> RDS >> Oracle

viloläge orakelsekvens producerar stort gap

Jag tror att problemet kommer från det faktum att sekvensgeneratorn egentligen inte är en sekvensgenerator, utan en sekvenshilo-generator, med en standardtilldelningsstorlek på 50. som framgår av dokumentationen:http://docs.jboss.org/ hibernate/stable/annotations/reference/en/html_single/#entity-mapping-identifier

Detta betyder att om sekvensvärdet är 5000, kommer nästa genererade värde att vara 5000 * 50 =250000. Lägg till cachevärdet för sekvensen till ekvationen, så kan det förklara ditt enorma initiala gap.

Kontrollera värdet på sekvensen. Den bör vara mindre än den senast genererade identifieraren. Var försiktig så att du inte återinitierar sekvensen till detta senast genererade värde + 1, eftersom det genererade värdet skulle växa exponentiellt (vi har haft det här problemet och haft negativa heltals-ID på grund av överflöde)



  1. Hur man tar bort lagrad procedur i MySQL

  2. Hur RAND() fungerar i MariaDB

  3. Hur väljer man en specifik kolumn från rumsdatabasen givet en specifik parameter i rumsfrågan?

  4. Det totala antalet lås överstiger låsbordets storlek