4.19.2 順序数生成子の定義
順序数生成子の定義には,CREATE SEQUENCEを使用します。CREATE SEQUENCEについては,マニュアル「HiRDB Version 9 SQLリファレンス」を参照してください。
順序数生成子の定義例を次に示します。
CREATE SEQUENCE SEQ1..........1 AS INTEGER..................2 START WITH 10...............3 INCREMENT BY 10.............4 MAXVALUE 999................5 MINVALUE 10.................6 CYCLE.......................7 LOG INTERVAL 3..............8 IN RD01.......................9
- [説明]
-
-
2〜9の条件で順序数生成子SEQ1を定義します。
-
データ型
-
開始値
-
増分値
-
最大値
-
最小値
-
循環指定
増分値10,最小値10,最大値999で,最大値の次の値が最小値となるように値を循環させます。
-
ログ出力間隔
-
格納先RDエリア名
- 注意事項
-
循環指定をした場合,順序数生成子が循環すると順序番号に重複が発生します。
-
- 〈この項の構成〉
(1) 順序数生成子格納RDエリアの指定
順序数生成子の定義時,順序数生成子の格納先として,次に示す条件を満たしたRDエリアを指定できます。
-
定義されている表と順序数生成子の合計が500未満のRDエリア
-
閉塞していないRDエリア
-
インナレプリカ機能を使用していないRDエリア
- 注意事項
-
-
HiRDB/パラレルサーバの場合,順序数生成子と順序数生成子を使用する表(サーバ間分割していない表)が別々のサーバに格納されているときは,順序数生成子を使用するたびに通信が発生して,処理性能が低下します。サーバ間分割している表の場合,順序数生成子と順序数生成子を使用する表を同じサーバのRDエリアに格納することで,通信回数を軽減できることがあります。そのため,順序数生成子と順序数生成子を使用する表は同じサーバのRDエリアに格納することを推奨します。
-
順序数生成子格納RDエリアに対してインナレプリカ機能は使用できません。
-
(2) ログ出力間隔の指定
順序数生成子の定義時,ログの出力間隔を指定することで,処理性能が向上します。
順序数生成子ログは,次の契機で出力されます。
-
順序数生成子を定義してから最初にNEXT VALUE式を使用したとき
-
順序番号の取得回数がログ出力間隔に達したとき
ログ出力間隔を指定した例を次の図に示します。
- 注意事項
-
-
順序数生成子のログ出力間隔を小さく設定すると,システム障害発生時の欠番は少なくなりますが,ログの出力回数が多くなるので性能が低下します。ログ出力間隔を大きく設定すると,システム障害発生時の欠番が多くなりますが,ログの出力回数が少なくなるので性能は向上します。
-
欠番が発生した場合,最大でログ出力間隔に指定した値の分だけ欠番が発生します。
-