Oracle:序列是如何实现的?
为了满足一些奇怪的业务需求,我将不得不实现自己的序列计数器。我将以一种显而易见的方式对此进行第一次切分,但我想进一步了解一下Oracle是如何实现序列的。例如,他们可以使用闩锁而不是锁吗 我在网络上找不到太多关于这方面的信息,所以欢迎您提供文档指针以及您个人经验中的见解Oracle:序列是如何实现的?,oracle,sequences,internals,oracleinternals,Oracle,Sequences,Internals,Oracleinternals,为了满足一些奇怪的业务需求,我将不得不实现自己的序列计数器。我将以一种显而易见的方式对此进行第一次切分,但我想进一步了解一下Oracle是如何实现序列的。例如,他们可以使用闩锁而不是锁吗 我在网络上找不到太多关于这方面的信息,所以欢迎您提供文档指针以及您个人经验中的见解 (10g RAC,如果有关系的话)我认为Oracle没有公布序列的内部工作原理,但乔纳森·刘易斯(Jonathan Lewis)对序列的工作原理进行了详细的分析。从该文件中: 因为这个机制是内部的 甲骨文它是非常高效的 绕过正常
(10g RAC,如果有关系的话)我认为Oracle没有公布序列的内部工作原理,但乔纳森·刘易斯(Jonathan Lewis)对序列的工作原理进行了详细的分析。从该文件中: 因为这个机制是内部的 甲骨文它是非常高效的 绕过正常的锁定争用 这与传统的 最终用户编码的“序列a表” 序列对象:“给我下一个 “可用号码”和“提醒我什么” 又是",;这些是 nextval和currval呼叫 分别 nextval请求 转到全局缓存以获取 下一个可用序列值和 将其复制到会话的本地 记忆
我不认为甲骨文已经出版了序列的内部工作原理,但是乔纳森·刘易斯已经写了一些关于序列工作原理的详细分析。从该文件中: 因为这个机制是内部的 甲骨文它是非常高效的 绕过正常的锁定争用 这与传统的 最终用户编码的“序列a表” 序列对象:“给我下一个 “可用号码”和“提醒我什么” 又是",;这些是 nextval和currval呼叫 分别 nextval请求 转到全局缓存以获取 下一个可用序列值和 将其复制到会话的本地 记忆
这里有一组很好的问题得到了回答:这里有一组很好的问题得到了回答:您想要/需要一个无间隙的数字序列吗?阅读以下内容:您想要/需要一个无间隙的编号序列吗?阅读此文:我认为您需要解释为什么需要实现自己的序列。如果我们知道您试图解决的问题,我们可能会给您一个答案,这样您就不必执行自己的自定义序列。我认为您需要解释为什么需要执行自己的序列。如果我们知道您试图解决的问题,我们可能会给您一个答案,这样您就不必自己定制序列。我想知道一些奇怪的业务需求,这意味着您不能只使用序列……我想知道一些奇怪的业务需求,这意味着您不能只使用序列。。。