sequence(learn什么意思怎么读)

所谓总览序列,是甲骨文中的一个对象。该对象用于提供有序数据列,并且该有序数据列的值不重复。Sequence是用于生成连续整数数据的对象,常用作主键中的增长列。该

所谓总览序列,是甲骨文中的一个对象。该对象用于提供有序数据列,并且该有序数据列的值不重复。Sequence是用于生成连续整数数据的对象,常用作主键中的增长列。该序列可以按升序或降序生成。

语法结构:创建序列

create sequence _ name[start with num][increment by increment][max value num | nomax value][min value num | no min value][cycle | no cycle][cache num | no cache]语法分析:

①开始于:从整数开始,升序默认值为1,降序默认值为-1。

②递增方式:增加数字。如果是正数,则按升序生成;如果是负数,将按降序生成。默认值按升序排列为1,按降序排列为-1。

③ MAXVALUE:指最大值。

④ NOMAXVALUE:这是最大值的默认选项。升序排列的最大值是:1027,降序排列的默认值是-1。

⑤ MINVALUE:指最小值。

⑥ NOMINVALUE:这是默认值选项,升序默认值为1,降序默认值为-1026。

⑦循环:表示如果升序达到最大值,将从最小值重新开始;如果是降序序列,达到最小值后,从最大值重新开始。

⑧ NOCYCLE:表示不重新开始,序列按升序达到最大值,降序达到最小值时报错。默认无周期。

⑨缓存:使用缓存选项时,这个序列会根据序列规则预生成一组序列号。把它保存在内存中,当下一个序列号被使用时,它可以更快地响应。当内存中的序列号用完时,系统会生成一组新的序列号并保存在缓存中,这样可以提高生成序列号的效率。默认情况下,Oracle会生成20个序列号。

nocache:没有预先在内存中生成序列号。

实例:创建序列

要求:创建一个序列,从1开始,默认为最大值,每次递增1。它需要无周期,缓存中有30个预分配的序列号。

实施:

SQL & gt创建序列myseq minvalue 1 start以1 nomax值递增1 nocyclecache 30/序列创建后,可以分别通过sequence对象的两个伪列CURRVAL和NEXTVAL访问序列的当前值和下一个值。

sequence(learn什么意思怎么读)插图

实例:序列使用

SQL> SELECT MYSEQ.NEXTVAL FROM DUAL;SQL> SELECT MYSEQ.CURRVAL FROM DUAL;

sequence(learn什么意思怎么读)插图(1)SQL & gt选择MYSEQ。DUAL的NEXTVALSQL & gt选择MYSEQ。DUAL的CURRVAL

实例:序列修改和删除

ALTER SEQUENCE可用于修改序列,但有以下限制:

1.序列的初始值不能修改。

2.最小值不能大于当前值。

3.最大值不能小于当前值。

使用“删除序列”命令删除序列对象。

SQL> ALTER SEQUENCE MYSEQ MAXVALUE 10000 MINVALUE -300 /SQL> DROP SEQUENCE MYSEQ;

sequence(learn什么意思怎么读)插图(2)SQL & gt更改序列MYSEQ max value 10000 MINVALUE-300/SQL & gt;删除序列MYSEQ

在RAC环境下,串口缓存的问题可能会对性能产生决定性的影响,默认的串口缓存值为20,对于RAC环境来说远远不够。如果存在序列号使用的竞争,您可能会在数据库中看到明显的队列等待:enq: sq-content。

对于RAC,经常使用的串行缓存值可以增加到10,000,甚至更高,达到50,000,这些都在客户的环境中采用。当基本缓存大于20时,性能基本可以接受,最好设置在100以上。用nocache的时候性能真的很差,最大相差20倍。

后面会分享更多DBA内容,感兴趣的朋友可以关注一下~

sequence(learn什么意思怎么读)插图(3)

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

作者:美站资讯,如若转载,请注明出处:https://www.meizw.com/n/126753.html

发表回复

登录后才能评论