甲骨文:如何实现的序列?
-
16-09-2019 - |
题
要满足一些奇怪的业务需求,我将不得不实现自己的序列式计数器。我要做出的这个第一切口在明显的方式,但我想了解更多的关于甲骨文如何实现序列。例如,它们可以使用闩锁,而不是锁?
我一直没能找到很多关于这个在网络上,所以指针从您的个人经验欢迎文档以及洞察力!
(10g RAC的,如果它的事项)
解决方案
我不认为Oracle已经发布序列的内部工作,但乔纳森·刘易斯写的他们是如何工作的此处。从该文件:
由于该机构是内部 甲骨文是非常有效的, 绕过正常的锁定争 出现与传统 终端用户编码“序列a的表 序列对象:“给我下 可用数量”和“提醒我什么 这是一次;这些是 的 NEXTVAL 和<强> CURRVAL 强>呼叫 分别。
的 NEXTVAL 请求 转到全局高速缓存来获得 一个可用的序列值, 它复制到会话的本地 存储器中。
其他提示
我认为你需要解释一下你为什么会需要实现自己的序列。如果我们知道你正在试图解决这个问题,我们也许能够给你一个答案,所以你就不必做你自己的自定义序列。
不隶属于 StackOverflow