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_sequencesSELECT * 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 --> row cache lockCAHCE+NOORDER --> enq: SQ-contention(SQ lock)CACHE+ORDER(RAC) --> DFS look handle(SV lock)
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24070945/viewspace-711771/
,如需转载,请注明出处,否则将追究法律责任。