CREATE SEQUENCE F_SQ
START WITH 1
MAXVALUE 999999999999999999999999999
MINVALUE 1
NOCYCLE
CACHE 20
NOORDER;
我使用上面的脚本创建了一个序列。我们的夜间工作使用这些序列,因此在第一天它使用1,2,3,4,5,第二天它以21,22,23开始......依此类推
我可以理解它正在发生,因为CACHE参数。
现在的问题是
三天之间它一直在跳过一些数字。
序列是否会决定使用这些跳过的数字?(从上面的示例6到20),如果是这样,在什么情况下有没有办法避免它?
答案 0 :(得分:1)
通常,由于缓存参数会跳过值。文档中指定的一些原因可能是因为当发生系统故障时,所有未在已提交的DML语句中使用的高速缓存序列值都将丢失。潜在的丢失值数等于CACHE参数的值。如果你想要一个连续的序列值,不管上面指定的情况如何,总是使用NOCACHE选项。
对于最后一个问题,除非你在序列中提到了CYCLE选项,否则不会再次使用这些序列。