RAC_Sequence序列号的使用

2023-05-16,,

[CACHE integer | NOCACHE] --指定数据库内存中预分配的序列值个数,最小cache值为2 |不指定缓存数
默认值是cache 20
[ORDER | NOORDER] --指定order条件保证序列按请求顺序生成|不保证序列按请求顺序生成
默认值是NOORDER

单机 sequence都是order的。就算加了noorder,结果还是order。
RAC sequence才有真正的order和noorder
order:两个节点保持一样的order
noorder:如果使用了nocache,两个节点保持一样的order
     如果使用了cache,两个节点不order,但各节点内部order

SQL> show parameter instance_name
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
instance_name                        string      PLMDB2
SQL> create sequence SEQ_T1 start with 10 maxvalue 100000 cache 2000 noorder;
Sequence created.
SQL> select SEQ_T1.nextval from dual;
   NEXTVAL
----------
        10
SQL> select SEQ_T1.nextval from dual;
   NEXTVAL
----------
        11

SQL> show parameter instance_name
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
instance_name                        string      PLMDB1
SQL> select SEQ_T1.nextval from dual;
   NEXTVAL
----------
      2010
SQL> select SEQ_T1.nextval from dual;
   NEXTVAL
----------
      2011

SQL> show parameter instance_name
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
instance_name                        string      PLMDB2
SQL> create sequence SEQ_T2 start with 10 maxvalue 100000 nocache noorder;
Sequence created.
SQL> select SEQ_T2.nextval from dual;
   NEXTVAL
----------
        10
SQL> select SEQ_T2.nextval from dual;
   NEXTVAL
----------
        11

SQL> show parameter instance_name
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
instance_name                        string      PLMDB1
SQL> select SEQ_T2.nextval from dual;
   NEXTVAL
----------
        12
SQL> select SEQ_T2.nextval from dual;
   NEXTVAL
----------
        13

SQL> show parameter instance_name
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
instance_name                        string      PLMDB2
SQL> create sequence SEQ_T3 start with 10 maxvalue 100000 noorder;
Sequence created.
SQL> select SEQ_T3.nextval from dual;
   NEXTVAL
----------
        10
SQL> select SEQ_T3.nextval from dual;
   NEXTVAL
----------
        11

SQL> show parameter instance_name
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
instance_name                        string      PLMDB1
SQL> select SEQ_T3.nextval from dual;
   NEXTVAL
----------
        30
SQL> select SEQ_T3.nextval from dual;
   NEXTVAL
----------
        31

SQL> show parameter instance_name
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
instance_name                        string      PLMDB2
SQL> create sequence SEQ_T4 start with 10 maxvalue 100000 order;
Sequence created.
SQL> select SEQ_T4.nextval from dual;
   NEXTVAL
----------
        10
SQL> select SEQ_T4.nextval from dual;
   NEXTVAL
----------
        11

SQL> show parameter instance_name
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
instance_name                        string      PLMDB1
SQL> select SEQ_T4.nextval from dual;
   NEXTVAL
----------
        12
SQL> select SEQ_T4.nextval from dual;
   NEXTVAL
----------
        13

《RAC_Sequence序列号的使用.doc》

下载本文的Word格式文档,以方便收藏与打印。