日期:2014-05-17  浏览次数:20955 次

求分析,oracle sequence 自增序列问题
sequence 设置每次自增 1 ,存储过程中使用
var$process_id := seq_auto_post_voucher.nextval;
再将 var$process_id 插入表中UUID字段(var$process_id变量后续没有操作),该字段每次却自增了 20
求高手帮忙分析一下问题可能出在哪里




创建sequence 脚本如下:
create sequence SEQ_AUTO_POST_VOUCHER
minvalue 1
maxvalue 9999999999999999999999999999
start with 1
increment by 1
cache 20;
oracle?sequence?自增序列

------解决方案--------------------
有没有循环啊
------解决方案--------------------
贴一点相关的存储看看 

1、可能是循环 

2、可能是后序操作删除了..

3、还有可能受Cache影响  
   先检查seq_auto_post_voucher的缓存大小Cache Size.如果不是1 就设置为1。
   如果大于1,每次访问的时候就会生成多个序列,这些序列如果没有用完,你在第二次插入的时候就不连续了
------解决方案--------------------
create sequence SEQ_AUTO_POST_VOUCHER
minvalue 1
maxvalue 9999999999999999999999999999
start with 1
increment by 1
cache 20;

你都保证不了是一个会话当然会跳,否则会重号。