Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle:序列是如何实现的?_Oracle_Sequences_Internals_Oracleinternals - Fatal编程技术网

Oracle:序列是如何实现的?

Oracle:序列是如何实现的?,oracle,sequences,internals,oracleinternals,Oracle,Sequences,Internals,Oracleinternals,为了满足一些奇怪的业务需求,我将不得不实现自己的序列计数器。我将以一种显而易见的方式对此进行第一次切分,但我想进一步了解一下Oracle是如何实现序列的。例如,他们可以使用闩锁而不是锁吗 我在网络上找不到太多关于这方面的信息,所以欢迎您提供文档指针以及您个人经验中的见解 (10g RAC,如果有关系的话)我认为Oracle没有公布序列的内部工作原理,但乔纳森·刘易斯(Jonathan Lewis)对序列的工作原理进行了详细的分析。从该文件中: 因为这个机制是内部的 甲骨文它是非常高效的 绕过正常

为了满足一些奇怪的业务需求,我将不得不实现自己的序列计数器。我将以一种显而易见的方式对此进行第一次切分,但我想进一步了解一下Oracle是如何实现序列的。例如,他们可以使用闩锁而不是锁吗

我在网络上找不到太多关于这方面的信息,所以欢迎您提供文档指针以及您个人经验中的见解


(10g RAC,如果有关系的话)

我认为Oracle没有公布序列的内部工作原理,但乔纳森·刘易斯(Jonathan Lewis)对序列的工作原理进行了详细的分析。从该文件中:

因为这个机制是内部的 甲骨文它是非常高效的 绕过正常的锁定争用 这与传统的 最终用户编码的“序列a表” 序列对象:“给我下一个 “可用号码”和“提醒我什么” 又是",;这些是 nextvalcurrval呼叫 分别

nextval请求 转到全局缓存以获取 下一个可用序列值和 将其复制到会话的本地 记忆


我不认为甲骨文已经出版了序列的内部工作原理,但是乔纳森·刘易斯已经写了一些关于序列工作原理的详细分析。从该文件中:

因为这个机制是内部的 甲骨文它是非常高效的 绕过正常的锁定争用 这与传统的 最终用户编码的“序列a表” 序列对象:“给我下一个 “可用号码”和“提醒我什么” 又是",;这些是 nextvalcurrval呼叫 分别

nextval请求 转到全局缓存以获取 下一个可用序列值和 将其复制到会话的本地 记忆


这里有一组很好的问题得到了回答:

这里有一组很好的问题得到了回答:

您想要/需要一个无间隙的数字序列吗?阅读以下内容:

您想要/需要一个无间隙的编号序列吗?阅读此文:

我认为您需要解释为什么需要实现自己的序列。如果我们知道您试图解决的问题,我们可能会给您一个答案,这样您就不必执行自己的自定义序列。

我认为您需要解释为什么需要执行自己的序列。如果我们知道您试图解决的问题,我们可能会给您一个答案,这样您就不必自己定制序列。

我想知道一些奇怪的业务需求,这意味着您不能只使用序列……我想知道一些奇怪的业务需求,这意味着您不能只使用序列。。。