Saltos en las secuencias
El problema ha ocurrido ya un par de veces, se trata de que entre la generación de un registro y el siguiente, la secuencia de la tabla da un salto, es decir, no es el anterior más uno (como está definido el incremento) si no mucho más, 18 o 20 y a partir de ahí sigue normalmente.
En la última ocasión coincide que entre un alta y la siguiente hubo un cierre anormal de la BD, esto es, se apagó el servidor sin haber parado la BD. Supongo que tiene algo que ver, ¿es correcto? ¿cúal es la explicación del salto?
La BD es Oracle 8.05 y la secuencia se asigna con un NEXTVAL en el disparador PRE-INSERT del bloque definido sobre la tabla correspondiente. El programa se montó usando Forms 6.
Gracias por la ayuda. Angeles
En la última ocasión coincide que entre un alta y la siguiente hubo un cierre anormal de la BD, esto es, se apagó el servidor sin haber parado la BD. Supongo que tiene algo que ver, ¿es correcto? ¿cúal es la explicación del salto?
La BD es Oracle 8.05 y la secuencia se asigna con un NEXTVAL en el disparador PRE-INSERT del bloque definido sobre la tabla correspondiente. El programa se montó usando Forms 6.
Gracias por la ayuda. Angeles
además ten en cuenta que las transacciones no confirmadas también probocan saltos pues las secuencias avanzan y la insert no se realiza.
Seguramente tendrás la secuencia creada como CACHE. Esto significa que cuando se consulta la secuencia se cachean por defecto 20 números, por lo que si hay parada de base de datos podrías perder hasta 20 números.
Para solucionarlo, puedes pasarlo a NOCACHE:
alter sequence nombre_secuencia NOCACHE;
La opción CACHE da mejor rendimiento, pero tiene el problema de los saltos.
Para solucionarlo, puedes pasarlo a NOCACHE:
alter sequence nombre_secuencia NOCACHE;
La opción CACHE da mejor rendimiento, pero tiene el problema de los saltos.
