加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – Oracle RAC和序列

发布时间:2020-12-12 16:43:04 所属栏目:MsSql教程 来源:网络整理
导读:我有各种使用序列的数据库应用程序,我将这些应用程序从不带RAC的10g迁移到具有RAC的11g的Oracle RAC.我需要有序的序列和间隙是容忍的. 我正在考虑缓存顺序,我不知道在性能上有什么影响.你认为这是一个很好的选择吗?您对序列和RAC有什么经验? 谢谢, 解决方法
我有各种使用序列的数据库应用程序,我将这些应用程序从不带RAC的10g迁移到具有RAC的11g的Oracle RAC.我需要有序的序列和间隙是容忍的.

我正在考虑缓存顺序,我不知道在性能上有什么影响.你认为这是一个很好的选择吗?您对序列和RAC有什么经验?

谢谢,

解决方法

在这个上下文中,“有序”是什么意思?

默认情况下,群集中的每个节点都有单独的序列号高速缓存.因此,节点1可以递送值1-100,而节点2递送值101-200.从单个节点返回的值是顺序的,但是节点1上的会话A可能获得值15,而节点2上的会话B获取值107,因此跨会话返回的值显示为无序.

如果您指定序列必须被排序,那么您基本上就是击败了序列缓存的目的,因为Oracle每次请求一个新的序列值时都必须在节点之间进行通信.这有可能创造出相当多的性能开销.如果你使用这个序列作为一个时间戳,这个开销可能是必要的,但并不是一般的期望值.

在实践中的开销差异将依赖于高度的应用程序 – 对于某些应用程序来说,这是不可估量的,对其他应用程序来说是一个重大的问题. RAC节点的数量,互连的速度以及互连流量有多少也有所贡献.而且由于这主要是一个可伸缩性的问题,实际的效果将会限制您的应用程序如何扩展,这本质上是非线性的.将应用程序处理的事务量加倍将远远超过开销的两倍.

如果指定NOCACHE,则ORDER或NOORDER的选择基本上是不相干的.如果指定ORDER,则CACHE或NOCACHE的选择基本上是无关紧要的.所以CACHE NOORDER是迄今为止最有效率的,其他三个是相对可互换的.每次请求序列值显然是潜在的瓶颈时,它们都将涉及节点间协调和网络流量.

通常最好将TIMESTAMP列添加到表中以存储实际的时间戳,而不是依赖序列来提供时间戳顺序.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读