機能
DSIの分割値の変更またはDSIの容量拡張を行います。
データベース簡単運用の場合は利用できません。
記述形式
参照項番
定数 → “2.1.2 定数”
権限
DSIを変更できるのは、表の定義者、スキーマの定義者または表のALTER権の保持者です。また、容量拡張を行うためにはデータベーススペースに対してALLOCATE権が必要です。
一般規則
分割値を変更するDSIに関連する表をアプリケーションでアクセス中の場合は、rdbexdsiコマンドでDSIを運用から除外した後、DSIの分割値を変更します。rdbexdsiコマンドの対象となっていないユーザが表をアクセス中の場合、ALTER DSI文は異常終了します。
参照
詳細については、“RDB運用ガイド”の“動的定義変更”を参照してください。
容量拡張をアプリケーションから実施する場合、実行中のトランザクションはシステムによりコミットされます。
容量拡張を実施する場合、対象のDSIは初期化または創成済みである必要があります。
メモリに常駐されたDSIは容量拡張ができません。メモリ常駐を解除してください。
参照
メモリ常駐の解除については、“RDB運用ガイド”の“メモリに常駐しているDSIの常駐解除”を参照してください。
プレオープンされたDSIに対する定義変更はできません。プレオープンを解除してください。
参照
プレオープンの解除については、“クラスタ導入運用ガイド”の“プレオープンするDSIの変更”を参照してください。
変更するDSIの名前を指定します。
すでにDSI内に格納されているデータに矛盾が生じるような変更はできません。
分割値を変更するDSIはアプリケーションなどで使用中であってはいけません。
USINGオペランドの一般規則については、“3.12 CREATE DSI文(表のDSI定義文)”を参照してください。
割付け先のデータベーススペース名を指定します。
1つのDSIの割付け対象の割付け先として指定するデータベーススペース名は、同じロググループを使用するデータベーススペースでなければなりません。
1つのDSIの割付け対象の割付け先として指定するデータベーススペース名は、暗号化指定が統一されていなければなりません。
割付け量には、データベーススペース中に獲得する格納領域の大きさを、符号なし整数と単位記号(KまたはM)の組合せで指定します。指定された値はページ長の整数倍に切り上げます。単位記号Kはキロバイト、単位記号Mはメガバイトを示します。1キロバイトは1024バイト、1メガバイトは1024キロバイトです。
割付け先を省略する場合、DSIに自動容量拡張の定義が設定されている必要があります。
ロードシェア運用の場合、DSIに指定されたデータベーススペースと同じシステムに偏在するデータベーススペースでなければなりません。
データベーススペースをローデバイスに作成している場合、ローデバイスのブロック長の倍数が、DSIの属するDSOのページ長でなければなりません。
割付け先のデータベーススペースに割付け量の空き領域があることを確認してください。
参照
詳細は“RDB運用ガイド”の“データベーススペースの容量監視”を参照してください。
インデックス部の割付け量は、ベース部の5分の1の値となります。ベース部の5分の1がインデックス部のページ長の倍数でない場合、インデックス部のページ長の倍数に繰り上げます。
割付け量には、容量拡張を行った結果、DSIの割付け量の制限値を超えない範囲で指定してください。
DSIの割付け量の制限値については、“C.1 Symfoware/RDBの定量制限”を参照してください。
割付け対象のデータベーススペースに、割付け量分の連続領域が存在しない場合、複数の領域に分割して割付けることがあります。複数の領域に分割されたかどうかは、rdbprtコマンドの出力結果で確認できます。DSI情報のAllocation informationのAllocate sizeに、指定した割付け量以下の値が表示された場合、複数の領域に分割して割付けられたと判断できます。
使用例
“DSI1”の分割値を変更します。
CREATE DSO DSO1 … WHERE (年月日) BETWEEN (?) AND (?); CREATE DSI DSI1 … USING (DATE'2005-8-1',DATE'2005-8-31'), (DATE'2006-8-1',DATE'2006-8-31'); : : ALTER DSI DSI1 ALTER USING (DATE'2006-8-1',DATE'2006-8-31'), (DATE'2007-8-1',DATE'2007-8-31');
“DSI1”の容量拡張を実施します。
ALTER DSI DSI1 ADD ALLOCATE ON DBSP1 SIZE 1M;