sql >> Base de Datos >  >> RDS >> Oracle

Oracle SEQUENCE - 'incrementar por' y 'caché'

Ninguno de los dos. No hay relación entre INCREMENT BY y CACHE.

INCREMENT BY controla el aspecto monótono de la secuencia. Con INCREMENTO EN 50 la serie va 1, 51, 101, 151 y así sucesivamente.

El CACHE controla cuántos números de secuencia se mantienen en la memoria para dar servicio a las solicitudes NEXTVAL. Cuanto menor sea el número de CACHE, más a menudo tendrá que leer la base de datos de sus tablas internas para tomar el siguiente rango de asignación. Entonces, en un sistema moderadamente ocupado, nos gustaría minimizar la cantidad de pestillos adquiridos, por lo que configuramos CACHE en un número alto, digamos 1000.

Las personas se obsesionan con establecer el valor CACHE porque piensan que si es demasiado alto, podrían "perder" algunos valores y tener lagunas en sus series. Es muy poco probable que esto suceda, e incluso si sucediera, no debería importarnos. Las secuencias son una fuente de valores únicos garantizados y no tienen más significado.

Aunque, después de volver a leer su pregunta, no creo que esto tenga ningún impacto en el rendimiento de sus inserciones masivas. ¿Por qué decidiste centrarte en la asignación de secuencias? ¿Ha realizado algún seguimiento para descubrir dónde está el cuello de botella? ¿Has hablado con tu DBA?