Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Oracle SEQUENCE - 'incrementar por' e 'cache'


Nenhum. Não há relação entre INCREMENT BY e CACHE.

O INCREMENT BY controla o aspecto monotônico da sequência. Com INCREMENT BY 50 a série vai 1, 51, 101, 151 e assim por diante.

O CACHE controla quantos números de sequência são mantidos na memória para atender às solicitações NEXTVAL. Quanto menor o número CACHE, mais frequentemente o banco de dados precisa ler suas tabelas internas para obter o próximo intervalo de alocação. Portanto, em um sistema moderadamente ocupado, gostaríamos de minimizar o número de travas adquiridas, então configuramos CACHE para um número alto, digamos 1000.

As pessoas ficam obcecadas em definir o valor CACHE, porque acham que se for muito alto podem "perder" alguns valores e ter lacunas em suas séries. É extremamente improvável que isso aconteça e, mesmo que aconteça, não devemos nos importar. As sequências são uma fonte de valores únicos garantidos e não têm mais significado.

Embora, relendo sua pergunta, não pense que isso terá algum impacto no desempenho de suas inserções em massa. Por que você escolheu se concentrar na alocação de sequências? Você executou algum rastreamento para descobrir onde está o gargalo? Você já conversou com seu DBA?