sql >> Databasteknik >  >> RDS >> Oracle

Oracle SEQUENCE - "öka med" och "cache"

Varken. Det finns inget samband mellan INCREMENT BY och CACHE.

INCREMENT BY styr den monotona aspekten av sekvensen. Med ÖKA MED 50 får serien 1, 51, 101, 151 och så vidare.

CACHE styr hur många sekvensnummer som finns i minnet för att betjäna NEXTVAL-förfrågningar. Ju mindre CACHE-nummer desto oftare måste databasen läsa från sina interna tabeller för att ta nästa allokeringsintervall. Så i ett måttligt upptaget system skulle vi vilja minimera antalet förvärvade spärrar, så vi ställer in CACHE till ett högt tal, säg 1000.

Människor är besatta av att ställa in CACHE-värdet, eftersom de tror att om det är för högt kan de "tappa" vissa värden och ha luckor i sina serier. Det är extremt osannolikt att detta kommer att hända, och även om det gör det borde vi inte bry oss. Sekvenser är en källa till garanterat unika värden och har ingen vidare betydelse.

Även om jag, efter att ha läst din fråga igen, inte tror att detta kommer att ha någon inverkan på prestandan för dina bulkskär. Varför valde du att fokusera på sekvensallokering? Har du kört något spår för att upptäcka var flaskhalsen är? Har du pratat med din DBA?




  1. Autofyll textruta beroende på rullgardinsvärde

  2. visa sista kommentaren som bara 1 kommentar per användare

  3. Hur man använder Relation::morphMap() för olika klasser

  4. mysql-connector-python 2.0.1-1 confilct med python-mysql.connector