start with 1
last value 1
increment by 1
cache 20
cache
値を事前に割り当てる方法と、前の値からどのように影響を受けるか?
いくつかのエントリの後、異なる結果が表示されています。
設定のあるシーケンスでは、CACHE 20
各インスタンスに 20 個の値がキャッシュされます (したがって、RAC クラスター内の各インスタンスは異なるキャッシュから動作します)。
「いくつかのエントリの後に異なる結果」について話しているとき、あなたが何を意味しているのか正確にはわかりません. 私の推測では、生成された値にギャップがあると言っていると思います。これは、Oracle シーケンスには常にギャップがあることが予想されます。シーケンスにCACHE
設定がある場合、ギャップの原因の 1 つは、シーケンスが共有プールから期限切れになった場合 (またはインスタンスがシャットダウンされた場合)、キャッシュされた値が破棄されることです。これがギャップの唯一の原因ではないため、シーケンスを に設定してもNOCACHE
ギャップは解消されません。パフォーマンスを犠牲にして、この特定のギャップの原因を排除します。