Oracle データベース テーブル属性のシーケンス ジェネレータを作成するための基本的な構文は次のとおりです。
CREATE SEQUENCE customers_seq
START WITH 1000
INCREMENT BY 1
NOCACHE
NOCYCLE;
NOORDER
SEQUENCE 構文の節が何をするのか知りたいです。句を含めるとNOORDER
、増分値をランダムに保つシーケンスが得られますか???
これは、並列サーバー モードまたはクラスタで実行する場合に重要です。ORDER は、シーケンス番号が順序付けられていることを保証します。
Example of “noorder” sequence in 10g RAC:
Session 1 on node-A: nextval -> 101
Session 2 on node-A: nextval -> 102
Session 1 on node-B: nextval -> 121
Session 1 on node-B: nextval -> 122
Session 1 on node-A: nextval -> 103
Session 1 on node-A: nextval -> 104
NOORDER を CACHING シーケンスと組み合わせると、この動作になります。ORDER は効果的に CACHE 設定を未使用にします。セッションがシーケンスを取得するときにキャッシングを 10 に設定すると、10 個のシーケンスがキャッシュに取り込まれます。