我的序列定义如下:
CREATE SEQUENCE "myseq" MINVALUE 1 MAXVALUE 9999999999 INCREMENT BY 1 START WITH 1046 CACHE 20 NOORDER NOCYCLE ;
现在我的客户报告系统生成了数字429521,42952,42967,42968,直到42972,42987,4307,4308。
序列在具有两个系统的集群数据库系统上运行。这种行为可能是由NOORDER关键字引起的吗? NOORDER的Oracle文档很短。
答案 0 :(得分:2)
这个选项只是不需要单独的实例来相互协调它们下次发布的值。
相反,每个实例都会获得一个可以独立绘制的值的缓存,从而提高性能。
因此,在多实例系统中,您使用NOORDER ,除非您希望序列号也指示记录具有分配给它们的序列号的顺序(通常,顺序他们被插入了。
您是否正确输入了这些数字?它们似乎非常不可能来自具有该序列的双实例系统,除非只有一个实例产生了最后40,000个左右的新值,而另一个实际上根本没有任何活动。