Orakelsequenz im Winterschlaf erzeugt eine große Lücke

Ich bin mit hibernate 3 oracle 10g. Ich habe eine Tabelle: Thema. Die definition ist hier

CREATE TABLE SUBJECT
    ( 
     SUBJECT_ID NUMBER (10), 
     FNAME VARCHAR2(30)  not null, 
     LNAME VARCHAR2(30)  not null, 
     EMAILADR VARCHAR2 (40),
     BIRTHDT  DATE       not null,
     constraint pk_sub primary key(subject_id) USING INDEX TABLESPACE data_index
    ) 
;

beim einfügen eines neuen Subjekt, sub_seq verwendet wird, um eine Thema-id, die definition ist hier

create sequence sub_seq
       MINVALUE 1 
       MAXVALUE 999999999999999999999999999 
       START WITH 1
       INCREMENT BY 1 
       CACHE 100 
       NOCYCLE ;

das Thema Klasse ist wie folgt:

@Entity
@Table(name="ktbs.syn_subject")
public class Subject {

    @Id 
    @Column(name="subject_id")
    @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SUB_SEQ")
    @SequenceGenerator(name="SUB_SEQ", sequenceName = "SUB_SEQ")
    private long subjectId;
    private String fname;
    private String lname;
    private String emailadr;
    private Date birthdt;
}

in der Thema-Tabelle , dort wurden 4555 Themen in die Datenbank geladen, die von plsql-Skripten aus excel und die sub_sequence fein gearbeitet. Thema-ids reichen von 1--4555.

jedoch, wenn ich fügte hinzu, ein Thema aus meiner Anwendung mit hibernate,
die Sequenznummer sprang 255050. Nach einigen Tagen läuft das Thema ids generiert durch hibernate wie folgt Aussehen

270079
270078
270077
270076
270075
270074
270073
270072
270071
270070
270069
270068
270067
270066
270065
270064
270063
270062
270061
270060
270059
270058
270057
270056
270055
270054
270053
270052
270051
270050
265057
265056
265055
265054
265053
265052
265051
265050
260059
260058
260057
260056
260055
260054
260053
260052
260051
260050
255067
255066
255065
255064
255063
255062
255061
255060
255059
255058
255057
255056
255055
255054
255053
255052
255051
255050
4555
4554
4553
.
.
.
.
1

Gibt es mehrere große Lücken: 4555, 255051, 255067 zu 260051, 265057 zu 270051

dies ist eine Verschwendung und nicht ein erwünschtes Verhalten.

weiß jemand, warum dies geschieht, und heiß es zu beheben

Dank

InformationsquelleAutor der Frage sse | 2011-03-17

Schreibe einen Kommentar