創建 sequence 參數 order與noorder的區別

分析

Order:

保證序列號按請求順序產生。如果想以序列號作爲timestamp(時間戳)類型的話,可以採用該選項。對於將序列用於生成主鍵來說,約定順序通常並不重要。

NOORDER: 
此選項跟Order相對應,並不按照請求的順序進行生成。

舉例

雙CPU對同一個oracle DB 中的 ABC sequence申請序號時, 這時就有兩個請求A和B,假設A請求在前B在後, 現在 ABC序列中的值爲9。 如果添加了ORDER選項,那麼一定是A請求到9, B請求到10。但如果沒有添加此選項,則有可能B請求到9, A請求到 10。

總結

無論使用哪個選項,sequence中生成的數據都是唯一的。因此,我們可以得出結論,在用sequence中的數據作爲ID時,無論選擇哪個選項都能確保ID的唯一性。但如果,用sequence中的數據作爲時間戳時,則需要使用Order選項,確保先到的請求時鐘排序在前面。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章