Oracle
 sql >> Baza danych >  >> RDS >> Oracle

sekwencja hibernacji wyroczni wytwarza dużą lukę

Myślę, że problem wynika z tego, że generator sekwencji nie jest tak naprawdę generatorem sekwencji, ale generatorem sekwencji hilo, z domyślnym rozmiarem alokacji 50. Jak wskazuje dokumentacja:http://docs.jboss.org/ hibernacja/stable/annotations/reference/en/html_single/#entity-mapping-identifier

Oznacza to, że jeśli wartość sekwencji to 5000, następną wygenerowaną wartością będzie 5000 * 50 =250000. Dodaj wartość pamięci podręcznej sekwencji do równania, a może to wyjaśnić ogromną początkową lukę.

Sprawdź wartość sekwencji. Powinien być mniejszy niż ostatnio wygenerowany identyfikator. Uważaj, aby nie ponownie zainicjować sekwencji do ostatnio wygenerowanej wartości + 1, ponieważ wygenerowana wartość rosłaby wykładniczo (mieliśmy ten problem i mieliśmy ujemne liczby całkowite z powodu przepełnienia)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wybrać tylko 1 wiersz z Oracle sql?

  2. Dostawca nie jest zgodny z wersją błędu klienta Oracle podczas korzystania z Oracle.DataClient

  3. Zaktualizuj instrukcję z wewnętrznym sprzężeniem w Oracle

  4. Jak zabić uruchomioną instrukcję SELECT

  5. Konwertuj datę ciągu na datę i godzinę w Oracle