RAC中的Sequence为何不按顺序递增?

hgamezoom 2012-12-10 01:54:57
我oracle2台节点的RAC环境,某个Sequence我已经设置了order, cache20。

为什么生成的数据,先生成的值反而大,后生成的小,如何解决这个问题?

难道order属性不起作用的?
...全文
582 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
db2_aixer 2012-12-11
  • 打赏
  • 举报
回复
节点间要共享seq 本来2种方式可以解决楼主所说 1 就是order+cache 2 nocache 而楼主用了第一种方式,我猜测有可能是cache过小,而调用nextval时会持有SV锁,造成先调用会话等待后反而比后调用的小---空了我验证下
潇洒王子 2012-12-11
  • 打赏
  • 举报
回复
不太了解,等高人。
BenChiM888 2012-12-11
  • 打赏
  • 举报
回复
order保证序列产生的顺序和请求的顺序是一致的,在并行模式下如果A、B同时对序列请求那么先产生的序列号必然返回给先请求的用户。例如当前序列号为10,A先请求B后请求那么11一定返回给A,12给B,在noorder的情况下,有可能11给B,10给A 并不能保证你的想法。
引用 5 楼 hgamezoom 的回复:
cache20的话,在node1和node2上分别保存了20个id,假设node1是1-20,node2是21-40 那么第一个请求发送时由node2处理,给了21,第二个请求由node1处理,给了1,就会出现我上面的情况。 这是我的猜测,但我不知道order这个参数是如何保证上面情况不发生的?
BenChiM888 2012-12-11
  • 打赏
  • 举报
回复
引用 10 楼 java3344520 的回复:
时间估计不是获取到SEQUENCE的时间
我也这么想。
善若止水 2012-12-11
  • 打赏
  • 举报
回复
把 cache 20 修改为 nocache试试
iqlife 2012-12-11
  • 打赏
  • 举报
回复
时间估计不是获取到SEQUENCE的时间
yurui05 2012-12-11
  • 打赏
  • 举报
回复
30324128 2012/12/1 8:13:18 30324127 2012/12/1 8:13:23 这两行是否在同一个节点上插入的? 因为你这个时间是sysdate。检查下两个节点的时间是否完全一致?
hgamezoom 2012-12-10
  • 打赏
  • 举报
回复
cache20的话,在node1和node2上分别保存了20个id,假设node1是1-20,node2是21-40 那么第一个请求发送时由node2处理,给了21,第二个请求由node1处理,给了1,就会出现我上面的情况。 这是我的猜测,但我不知道order这个参数是如何保证上面情况不发生的?
hgamezoom 2012-12-10
  • 打赏
  • 举报
回复
我是调用存储过程对这张表进行insert操作, insert into xx (id, updatetime) values (null, sysdate) 在表上有一个trigger用于获取sequence.nextval插入。 会有什么问题吗?
BenChiM888 2012-12-10
  • 打赏
  • 举报
回复
你插入数据和取得sequence值之间有 其他操作吗? 比如:先获取序列值 再一堆操作 最后插入数据
hgamezoom 2012-12-10
  • 打赏
  • 举报
回复
这个是create sequence的语句: create sequence SEQ_STEP minvalue 1 maxvalue 9999999999999999999999999999 start with 30335946 increment by 1 cache 20 order; 下面是我在表中看到的结果: 30324126 2012/12/1 8:13:16 30324128 2012/12/1 8:13:18 30324127 2012/12/1 8:13:23 照理第二行的这条数据比第三行早插入,应该获得较小的sequence,现在却是较大的?
BenChiM888 2012-12-10
  • 打赏
  • 举报
回复
命令贴出来都

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧