Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle SEQUENCE - 'increment by' und 'cache'

Weder. Es besteht keine Beziehung zwischen INCREMENT BY und CACHE.

Das INCREMENT BY steuert den monotonen Aspekt der Sequenz. Mit INCREMENT BY 50 wird die Reihe zu 1, 51, 101, 151 und so weiter.

Der CACHE steuert, wie viele Sequenznummern im Speicher gehalten werden, um NEXTVAL-Anforderungen zu bedienen. Je kleiner die CACHE-Nummer, desto öfter muss die Datenbank aus ihren internen Tabellen lesen, um den nächsten Zuordnungsbereich zu greifen. In einem mäßig ausgelasteten System möchten wir also die Anzahl der erworbenen Latches minimieren, also setzen wir CACHE auf eine hohe Zahl, sagen wir 1000.

Die Leute sind besessen davon, den CACHE-Wert festzulegen, weil sie denken, wenn er zu hoch ist, könnten sie einige Werte "verlieren" und Lücken in ihren Reihen haben. Es ist äußerst unwahrscheinlich, dass dies geschieht, und selbst wenn es passiert, sollte es uns egal sein. Sequenzen sind eine Quelle garantierter eindeutiger Werte und haben keine weitere Bedeutung.

Nachdem ich Ihre Frage erneut gelesen habe, glaube ich jedoch nicht, dass dies Auswirkungen auf die Leistung Ihrer Massenbeilagen haben wird. Warum haben Sie sich entschieden, sich auf die Sequenzzuordnung zu konzentrieren? Haben Sie eine Ablaufverfolgung durchgeführt, um herauszufinden, wo der Engpass ist? Haben Sie mit Ihrem DBA gesprochen?