Oracle Sequence生成器语法

时间:2012-11-27 13:12:09

标签: sql oracle

为oracle数据库表属性创建序列生成器的基本语法是:

CREATE SEQUENCE customers_seq
START WITH     1000
INCREMENT BY   1
NOCACHE
NOCYCLE;

我想知道SEQUENCE语法中NOORDER子句的作用是什么?如果我包含NOORDER子句,它会给我一个序列,保持增量值随机???

1 个答案:

答案 0 :(得分:4)

在并行服务器模式或群集中运行时,这很重要。 ORDER保证序列号是有序的。

Example of “noorder” sequence in 10g RAC:

Session 1 on node-A: nextval -> 101
Session 2 on node-A: nextval -> 102
Session 1 on node-B: nextval -> 121
Session 1 on node-B: nextval -> 122
Session 1 on node-A: nextval -> 103
Session 1 on node-A: nextval -> 104

NOORDER与CACHING序列结合会导致此行为。 ORDER有效地使CACHE设置未使用。当一个会话获得一个序列时,缓存设置为10,它需要10个序列进入它的缓存。