sql >> Database >  >> RDS >> Oracle

Oracle SEQUENCE - 'verhogen met' en 'cache'

Geen van beide. Er is geen verband tussen INCREMENT BY en CACHE.

De INCREMENT BY regelt het monotone aspect van de sequentie. Met INCREMENT BY 50 wordt de reeks 1, 51, 101, 151 enzovoort.

De CACHE bepaalt hoeveel volgnummers in het geheugen worden bewaard om NEXTVAL-verzoeken af ​​te handelen. Hoe kleiner het CACHE-nummer, hoe vaker de database uit de interne tabellen moet lezen om het volgende toewijzingsbereik te pakken. Dus in een redelijk druk systeem zouden we het aantal verworven vergrendelingen willen minimaliseren, dus stellen we CACHE in op een hoog aantal, zeg 1000.

Mensen zijn geobsedeerd door het instellen van de CACHE-waarde, omdat ze denken dat als deze te hoog is, ze enkele waarden zouden kunnen "verliezen" en gaten in hun reeks zouden hebben. Het is uiterst onwaarschijnlijk dat dit gebeurt, en zelfs als dat het geval is, zou het ons niet kunnen schelen. Sequenties zijn een bron van gegarandeerde unieke waarden en hebben verder geen betekenis.

Hoewel ik uw vraag opnieuw heb gelezen, denk ik niet dat dit enige invloed zal hebben op de prestaties van uw bulkinserts. Waarom heb je ervoor gekozen om je te concentreren op sequentietoewijzing? Heb je enig spoor nagelopen om te ontdekken waar de bottleneck zit? Heb je met je DBA gesproken?




  1. MySQL - negeer invoegfout:dubbele invoer

  2. Optellen, aftrekken en samenvoegen van meerdere mysql-tabelkolommen

  3. EXISTS vs JOIN en gebruik van de EXISTS-clausule

  4. Arabisch teken niet correct ingevoegd (zoals ????) in Oracle-database?