oracle18c默认sid,Oracle 18c-可伸缩序列(Scalable Sequence)
1.
说明
在18c之前的版本中对于序列的使用,存在着对同一个序列争用的情况,特别是对于RAC这种高并发的环境中争用序列情况更是容易发生。针对这种情况,Oracle退出了可伸缩序列,大大减少了序列和所在索引的争用,并提供了更好的数据负载可伸缩性。而对于单实例也同样有用。
2.
创建可伸缩序列
l
语法
通过加SCALE关键字就可以创建可伸缩序列
CREATE | ALTER SEQUENCE sequence_name
...
https://www.cndba.cn/Expect-le/article/2922
SCALE [EXTEND | NOEXTEND] | NOSCALE
...
可伸缩序列=6位可伸缩序列偏移量数+正常的序列
6位可伸缩序列偏移量数=[(instance id % 100) + 100]+[会话ID % 1000]https://www.cndba.cn/Expect-le/article/2922
l
EXTEND
表示序列总长度=[X个数字+Y个数字],X默认值是6位数,Y是MAXVALUE指定的位数。
l
NOEXTEND
表示序列总长度不能超过MAXVALUE定义的长度,由于前面默认是6位数+正常的序列号,所以长度最少是7位数。
2.1.
实验
2.1.1.
创建EXTEND类型的可伸缩序列
l
查看会话ID和实例号
SQL> select sys_context('userenv','sid') from dual;
SYS_CONTEXT('USERENV','SID')
--------------------------------------------------------------------------------
69
https://www.cndba.cn/Expect-le/article/2922
SQL> select instance_number from v$instance;
INSTANCE_NUMBER
---------------
1
l
创建序列
SQL> create sequence lei_seq start with 1 increment by 1 minvalue 1 maxvalue 100 scale extend;https://www.cndba.cn/Expect-le/article/2922
Sequence created.
l
查看序列值
SQL> select lei_seq.nextval from dual;
NEXTVAL
101069001= 101+069+001
l
再开一个会话查看序列值
会话ID不同,生成的序列肯定不会相同,但是最后3位是依次增长的。
SQL> select sys_context('userenv','sid') from dual;
SYS_CONTEXT('USERENV','SID')
--------------------------------------------------------------------------------
101
SQL> select lei_seq.nextval from dual;
https://www.cndba.cn/Expect-le/article/2922
NEXTVAL
----------
101101002
2.1.2.
创建NOEXTEND类型的可伸缩序列
SQL> create sequence lei_seq2 start with 1 increment by 1 minvalue 1 maxvalue 100 scale noextend;
Sequence created.
SQL> select lei_seq2.nextval from dual;https://www.cndba.cn/Expect-le/article/2922
select lei_seq2.nextval from dual
*
ERROR at line 1:
ORA-64603: NEXTVAL cannot be instantiated for LEI_SEQ2. Widen the sequence by 4
digits or alter sequence with SCALE EXTEND.
可以看到报错了序列无法实例化,提示要么去掉maxvalue参数,要么使用extend。
错误原因很简单,因为noextend的可伸缩序列最少要7位数。
修改可以修改maxvalue为1000000即可,也就是6位数+1,一直增长到9就无法增长了,因为增长到10就会超过7位数。证明如下:
SQL> alter sequence lei_seq2 maxvalue 1000000;
Sequence altered.
重复执行几次
SQL> select lei_seq2.nextval from dual;https://www.cndba.cn/Expect-le/article/2922
NEXTVAL
----------
1011011
SQL> /
NEXTVAL
----------
1011018
https://www.cndba.cn/Expect-le/article/2922
SQL> /
NEXTVAL
----------
1011019
SQL> /
select lei_seq2.nextval from dual
*
ERROR at line 1:--可以看到超过9就报错了,因为序列总长度超过了7位。
ORA-64603: NEXTVAL cannot be instantiated for LEI_SEQ2. Widen the sequence by 1
digits or alter sequence with SCALE EXTEND.
https://www.cndba.cn/Expect-le/article/2922
3.
总结
对于可伸缩序列来说EXTEND和NOEXTEND没有本质区别,MAXVALUE代表的含义有所不同。
l
对于EXTEND来说MAXVALUE代表的后面正常序列的长度,而不是可伸缩序列的总长度。
l
对于NOEXTED来说MAXVALUE代表的是可伸缩序列的总长度。
注:Oracle建议对于可伸缩序列不要使用排序,因为它本身就是无序的。
参考连接:
版权声明:本文为博主原创文章,未经博主允许不得转载。
Scalable Sequences
oracle18c默认sid,Oracle 18c-可伸缩序列(Scalable Sequence)相关推荐
- 极速体验:Oracle 18c下载和Scalable Sequence新特性
Oracle 18c 如约已至,目前已经可以从 Oracle Edelivery 网站下载.该网站地址是:https://edelivery.oracle.com 搜索 Oracle Database ...
- 极速体验:Oracle 18c 下载和Scalable Sequence新特性
Oracle 18c 已至,目前已经可以从Oracle Edelivery 网站下载. 该网站的网址是:https://edelivery.oracle.com . 搜索 Oracle Databas ...
- oracle18c升级19,Oracle 18C新特性测试之滚动升级
原标题:Oracle 18C新特性测试之滚动升级 7月24日Oracle 18c通用版本正式对外发布后,三墩IT人在第一时间选取了Oracle 18c PDB在数据同步.迁移.切换方面的三项新功能的测 ...
- oracle两表链接序列跳序,Oracle学习之 序列(Sequence)
Oracle学习之 序列(Sequence) [Oracle学习]之 序列(Sequence) oracle文档:https://docs.oracle.com/cd/B28359_01/server ...
- 快讯:Oracle 18c 通用版本 18.3 正式发布
如同 Oracle 此前预告的那样,Oracle Database 18c 已经正式发布,初始发布的 Linux X86 版本,版本号 18.3 : Oracle Database 18c (18.3 ...
- 内核解密 | Oracle 18c 数据库安装ORA-12754的两种解决方案
Oracle 率先在 Oracle Cloud 上发布了 18c 的数据库版本,也对外发布了针对 Exadata 的下载包.这些软件首先在 Edelivery 网站上提供了下载. 也可以参考公众号之前 ...
- oracle sql语句序列,Oracle SQL之 序列使用限制
Restrictions on Sequence Values You cannot use CURRVAL and NEXTVAL in the following constructs: ■ A ...
- oracle查看表空间的序号,Oracle查询所有序列
--查看当前用户的所有序列 select SEQUENCE_OWNER,SEQUENCE_NAME from dba_sequences where sequence_owner='用户名'; --查 ...
- oracle18c的rac启动,使用NFS与ASM配置Oracle 18c RAC
对于没有共享存储的环境下,可以使用基于NFS的ASM来配置RAC.这里简单描述如何在Oracle 18c RAC环境下配置基于NFS的ASM服务. 1.环境介绍 所用到的主机信息如图中所示: 2.NF ...
最新文章
- php 访问类成员,PHP类成员的访问方式和权限_PHP教程
- 使用Python中的卷积神经网络进行恶意软件检测
- gdb debug memory address
- 光环大数据spark文档_推荐大数据Spark必读书目
- 根据ABAP BAdI definition名称找到SPRO里配置路径的办法
- Spring Boot 10:处理Json数据中的null值
- 南大用“推荐算法”分宿舍666,新生配好舍友美滋滋
- 吞噬星空怎么会有鸿蒙,论吞噬星空与鸿蒙的关系
- layui横向时间线_用打火机或烟头烧羽毛球拍线坏处多
- 通过调用外部exe的方法实现c#调用java
- python变量赋值方式_【Python入门学习】详谈python变量和变量赋值语句
- in作为介词的用法_思维导图:为孩子收藏——常出错的英语用法集锦
- hidl 原理分析_普通高等教育“十五”规划教材 电机学-胡虔生, 胡敏强.pdf
- 什么是Redis?什么是nosql?NoSQL数据库的四大分类
- 射频识别技术漫谈(1)——概念、分类
- EXICOM/STAHL触摸屏维修MT-577-SX-TFT-T-AC-AL故障概述
- React 事件处理
- 墨菲定律|马太效应|破窗理论|蝴蝶效应
- MOS管工作动画原理图详解
- php开发框架symfony,symfony