我知道序列並不能保證沒有間隙,但我想盡量減少它們的出現,所以它們只會在特殊情況下發生(最好只在事務回滾時)。在序列生成過程中最大限度地減少間隙的出現
我在RAC中有幾個節點可以同時訪問序列。
create sequence seq_1 start with 1 order; # this seems to return numbers without gaps, but what will happen when database is restarted? will cached elements be dropped?
create sequence seq_2 start with 1 nocache; # this one also seems to return numbers in order without gaps, but I heard some objections about using nocache as it hinders performance
create sequence seq_3 start with 1 nocache order; # any improvements over previous two?
那麼哪一個更好?
作爲替代方案,我可以使用表來存儲序列號,但是目前我想考慮基於序列的解決方案而不是基於表格。
謝謝。
這與我想要達到的目的相反。 RAC中的每個節點都會緩存20個元素,因此當從不同節點訪問序列時,會出現像這樣的1,20,2,21。 –
對不起,沒有注意到真正的應用程序集羣。我會重新發布。 – SriniV
建立自己的vs使用NOCACHE,ORDER,NOCYCLE序列對象有什麼好處? –