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

Oracle SEQUENCE - 'øge med' og 'cache'

Ingen af ​​dem. Der er ingen sammenhæng mellem INCREMENT BY og CACHE.

INCREMENT BY styrer det monotone aspekt af sekvensen. Med FORØG MED 50 får serien 1, 51, 101, 151 og så videre.

CACHE styrer, hvor mange sekvensnumre der opbevares i hukommelsen for at betjene NEXTVAL-anmodninger. Jo mindre CACHE-nummeret er, jo oftere skal databasen læse fra sine interne tabeller for at få fat i det næste tildelingsområde. Så i et moderat travlt system vil vi gerne minimere antallet af optagne låse, så vi indstiller CACHE til et højt tal, f.eks. 1000.

Folk er besat af at indstille CACHE-værdien, fordi de tror, ​​at hvis den er for høj, kan de "miste" nogle værdier og have huller i deres serier. Det er yderst usandsynligt, at det sker, og selvom det sker, er vi ligeglade. Sekvenser er en kilde til garanteret unikke værdier og har ingen yderligere betydning.

Selvom jeg har genlæst dit spørgsmål, tror jeg ikke, at dette vil have nogen indflydelse på ydeevnen af ​​dine bulk-indsatser. Hvorfor valgte du at fokusere på sekvensallokering? Har du kørt noget spor for at finde ud af, hvor flaskehalsen er? Har du talt med din DBA?




  1. Oracle tynd driver vs. OCI driver. Fordele og ulemper?

  2. Er der en tilsvarende for SQL Servers @@-fejl i MySQL

  3. MySQL-filter på mange-til-mange

  4. SQL Server hvor klausul mellem to datoer ikke giver forventet output