按顺序缓存ORACLE

时间:2012-06-15 11:30:28

标签: oracle oracle10g sequence

start with 1
last value 1
increment by 1
cache 20

cache如何预分配值以及它如何受先前值的影响?

在几次参赛后,它显示了不同的结果。

1 个答案:

答案 0 :(得分:4)

具有CACHE 20设置的序列在每个实例上缓存20个值(因此RAC集群中的每个实例都在不同的缓存中工作)。

当你谈到“几次参赛后的不同结果”时,我不确定你的意思。我的猜测是,你说的是所产生的值存在差距 - 这是预期的,Oracle序列总是会有差距。当序列具有CACHE设置时,间隙的一个来源是,如果序列老化了共享池(或者实例关闭),则会丢弃缓存的值。这不是差距的唯一来源,因此将序列设置为NOCACHE不会消除差距。它将以牺牲性能为代价消除这种特殊的间隙来源。