Oracle
 sql >> Database >  >> RDS >> Oracle

Oracle SEQUENCE - 'incremento di' e 'cache'

Né. Non esiste alcuna relazione tra INCREMENT BY e CACHE.

INCREMENT BY controlla l'aspetto monotono della sequenza. Con INCREMENT BY 50 la serie diventa 1, 51, 101, 151 e così via.

La CACHE controlla quanti numeri di sequenza vengono mantenuti in memoria per soddisfare le richieste NEXTVAL. Più piccolo è il numero della CACHE, più spesso il database deve leggere dalle sue tabelle interne per afferrare l'intervallo di allocazione successivo. Quindi, in un sistema moderatamente occupato, vorremmo ridurre al minimo il numero di latch acquisiti, quindi impostiamo CACHE su un numero alto, diciamo 1000.

Le persone sono ossessionate dall'impostazione del valore della CACHE, perché pensano che se è troppo alto potrebbero "perdere" alcuni valori e avere delle lacune nelle loro serie. È estremamente improbabile che accada, e anche se succede non dovrebbe interessarci. Le sequenze sono una fonte di valori unici garantiti e non hanno più significato.

Anche se, dopo aver riletto la tua domanda, non credo che ciò avrà alcun impatto sulle prestazioni dei tuoi inserti in blocco. Perché hai scelto di concentrarti sull'allocazione delle sequenze? Hai eseguito qualche traccia per scoprire dove si trova il collo di bottiglia? Hai parlato con il tuo DBA?