2014-09-26 71 views
0

我有2000年左右具有值的巨大差異的序列,而使用Merge..I最初有20的緩存,同時限定我的序列definition..later我重新定義了我的序列問題與Oracle序列

CREATE SEQUENCE "DMODS"."ORDER_SEQ" 
     MINVALUE 1 
     MAXVALUE 9999999999 
     INCREMENT 1    
     START WITH 1 
     NOCACHE 
     ORDER 
     NOCYCLE 

我注意到序列的值現在在同一天發生插入/更新的平均值爲2000 ..您可以點亮一下嗎?

+0

你能告訴我們你的MERGE語句?看起來序列也在增加更新,而不僅僅是插入。 – San 2014-09-26 07:04:59

+0

嗨,謝謝!當然, – user3296391 2014-09-26 07:06:56

+0

如果你的序列不密集並且值有差距,它又有什麼關係? – vishad 2014-09-26 07:10:18

回答

1

引用湯姆凱特(https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:530735152441

序列將永遠不會生成數字的無間隙序列。 如果有人調用seq.nextval並且沒有在某處插入值(或者插入它 並且以後回滾他們的事務)那個號碼是無效的。 序列是數據庫對象,可能會像其他所有 一樣從共享池中過時 - 其不會因數據庫關閉而產生間隙。 你永遠不應該指望一個序列產生任何東西,甚至接近無間隙 數字序列。它們是一種高速,高度可擴展的多用戶方式,可爲 生成表格的替代鍵。

基本上,這不是問題,他們做他們做的事情。如果你需要數字的連續序列爲您的主鍵,你需要自己生成它(MAX + 1)

戴夫