要满足一些奇怪的业务需求,我将不得不实现自己的序列式计数器。我要做出的这个第一切口在明显的方式,但我想了解更多的关于甲骨文如何实现序列。例如,它们可以使用闩锁,而不是锁?

我一直没能找到很多关于这个在网络上,所以指针从您的个人经验欢迎文档以及洞察力!

(10g RAC的,如果它的事项)

有帮助吗?

解决方案

我不认为Oracle已经发布序列的内部工作,但乔纳森·刘易斯写的他们是如何工作的此处。从该文件:

  

由于该机构是内部   甲骨文是非常有效的,   绕过正常的锁定争   出现与传统   终端用户编码“序列a的表   序列对象:“给我下   可用数量”和“提醒我什么   这是一次;这些是   的 NEXTVAL 和<强> CURRVAL 呼叫   分别。

     

NEXTVAL 请求   转到全局高速缓存来获得   一个可用的序列值,   它复制到会话的本地   存储器中。

其他提示

我认为你需要解释一下你为什么会需要实现自己的序列。如果我们知道你正在试图解决这个问题,我们也许能够给你一个答案,所以你就不必做你自己的自定义序列。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top