您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Oracle Sequence nextval正在来回跳转数字

Oracle Sequence nextval正在来回跳转数字

我敢打赌,您的数据库正在运行RAC(Real Application Clusters)。假设是这种情况,并且您使用所有认设置创建了序列,这就是预期的行为。

认设置是缓存20个值。认情况下,RAC群集中的每个节点都将具有单独的缓存。假设您有一个包含两个节点A和B的群集,则第一次nextval在A上请求a时,A将缓存值1-20并返回值1。如果nextval在B上对a的下一个请求,则B将缓存值21-40并返回值21。从那里开始,获得的值将取决于您的连接恰好在其上运行的节点。

通常,这应该不成问题。序列生成唯一的数字。这些数字通常不必是连续的。如果您确实需要按顺序返回值,因为您正在执行一些操作,例如按序列生成的值排序以确定“第一”或“最后”行,则可以ORDER在创建序列时使用该子句来强制返回值为了。但是,这对RAC数据库具有负面的性能影响,因为它增加了节点之间进行同步以返回值同步所需的通信量。如果您需要确定“第一行”或“最后一行”,date``timestamp

Oracle 2022/1/1 18:46:12 有362人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶