SEQUENCE序列的使用

1、序列的创建:

CREATE SEQUENCE SEQUENCE_NAME
    INCREMENT BY n  
    START WITH n  
    MAXVALUE n | NOMAXVALUE  
    MINVALUE n | NOMINVALUE  
    CYCLE | NOCYCLE  
    CACHE n | NOCACHE | ORDER;

相关参数说明:
INCREMENT BY n 序列递增幅度
START WITH n      序列开始值
MAXVALUE n        序列最大值
MINVALUE n         序列最小值
CYCLE                 序列序号循环使用
CACHE n              序列序号缓存个数,默认20个,默认NOORDER模式。
CACHE n ORDER  在RAC中共用一个SEQUENCE的CACHE,NOORDER不共用CACHE。

数据字典:user_sequences,all_sequences,dba_sequences

SELECT * FROM USER_SEQUENCES WHERE SEQUENCE_NAME = 'SEQUENCE_NAME';

2、序列的管理:

可以修改的值:增幅、最大值、最小值、循环使用、缓存。
不能修改的值:开始值。
修改开始值必须删除重建。

ALTER SEQUENCE SEQUENCE_NAME
   INCREMENT BY n
   MAXVALUE n
   MINVALUE n
   CYCLE
   CACHE n;

删除以及授权:

DROP SEQUENCE sequence_name;
GRANT SELECT ON sequence_name TO user_name;
GRANT ALTER ANY SEQUENCE;


3、序列的使用:

NEXTVAL 下一个序号
CURRVAL 当前的序号

例:
SELECT sequence_name.nextval FROM dual;
SELECT sequence_name.currval FROM dual;

发生回滚后,序列不能回滚,会发生序列号不连续的情况。

4、Cache设置注意事项:

NOCACHE不会造成序列跳号,但是并发性能比较差,会造成row cache lock等待事件。
在RAC环境中SEQUENCE CACHE适量的设置大一点,避免序列竞争导致,如每秒会有上万次SELECT,
并发量很大cache需要设置为100甚至1000以上。

不同cache模式的等待事件:
NOCACHE                     --&gt row cache lock
CAHCE+NOORDER       --&gt enq: SQ-contention(SQ lock)
CACHE+ORDER(RAC)   --&gt DFS look handle(SV lock)

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24070945/viewspace-711771/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/24070945/viewspace-711771/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值