機能
表に付加するインデックスのデータを格納する領域を、データベーススペースに割り付けるために、DSIを定義します。
記述形式
参照項番
日本語文字列 → “2.1.3 トークン”
権限
インデックスのDSIを定義できるのは、その表の定義者、スキーマの定義者またはその表のINDEX権の保持者です。また、データベーススペースに対してALLOCATE権が必要です。
一般規則
作成するインデックスのDSIの名前を指定します。
DSI名には、36文字以内の先頭が英字で始まる英数字、または18文字以内の日本語文字列を指定します。
DSI名は、データベース内で一意の名前であることが必要です。
インデックスを縮退する場合に指定します。省略した場合は、CREATE DSO文の指定に従います。
DEGENERATEを指定すると、行の削除によりインデックスのページ内に有効なデータがなくなった場合に、そのページを未使用として管理し、行の追加時に新たなページが必要になった時点で再使用を行います。DEGENERATEを指定しない場合には、有効なデータがなくなったページについてこの管理は行われません。
DEGENERATEを指定することにより、インデックススペースの利用効率が向上し、インデックスの再創成の契機を減らすことが可能となります。
インデックスのDSIを定義する表に、分割条件を指定した表のDSOが定義されている場合、BASEオペランドを指定します。そうでない場合には、BASEオペランドは指定できません。
BASEオペランドのDSI名には、インデックスを作成する表に対して定義済である、表のDSIの名前を指定します。このとき、インデックスのDSIは、ここで指定した表のDSIに対応するインデックスのデータの格納領域を定義します。
スペース割付け句で指定する割付け対象の意味を“表3.1 インデックスのDSIに指定する割付け対象”に示します。
指定する割付け対象 | 意味 |
---|---|
BASE | インデックスのDSIの、データ部にスペースを割り付ける。 |
INDEX | インデックスのDSIの、インデックス部にスペースを割り付ける。 |
参照
データ部およびインデックス部の構造については、“RDB運用ガイド(データベース定義編)”を参照してください。
インデックスのデータを格納するデータベーススペースの名前を指定します。
1つのDSIの割付け対象の割付け先として指定するデータベーススペース名は、同じロググループのデータベーススペースでなければなりません。また、関連する表のDSIで割り付けたデータベーススペースと同じロググループを使用するものでなければなりません。
割付け量には、データベーススペース中に獲得する格納領域の大きさを、符号なし整数と単位記号(KまたはM)の組合せで指定します。指定された値はページ長の整数倍に切り上げます。単位記号Kはキロバイト、単位記号Mはメガバイトを示します。1キロバイトは1024バイト、1メガバイトは1024キロバイトです。
インデックスのDSIのデータ部およびインデックス部に対する割付け量は、それぞれのページ長の2倍以上を指定することが必要です。たとえば、データ部のページ長が2キロバイトの場合、データ部に対する割付け量は4キロバイト以上になるように指定します。インデックス部のページ長が1キロバイトの場合は、インデックス部に対する割付け量は2キロバイト以上になるように指定します。
割付け量を省略した場合のインデックスのDSIのデータ部およびインデックス部に対する割付け量は、それぞれDSO定義時のページ長の84倍とデータ部の割付け量の1/5倍になります。
インデックスのDSIを初期化する場合に指定します。
表のDSIが定義直後の場合、FORMATは指定できません。
rdbddlexコマンドの準備モードで定義する場合、FORMATは指定できません。
同じデータベーススペースを2回以上指定することはできません。
1つのDSIの割付け対象の割付け先として指定するデータベーススペース名は、同じロググループを使用するデータベーススペースでなければなりません。
拡張領域の割付け先には、拡張量に指定した値以上の空き領域を用意してください。
また拡張領域の割付け先を省略した場合、DSIのデータベーススペースを拡張領域の割付け先とするため、DSIのデータベーススペースに拡張量に指定した値以上の空き領域を用意してください。
割付け量は、ページ長以上の値を指定してください。
割付け量には、データベーススペース中に獲得する格納領域の大きさを、符号なし整数と単位記号(KまたはM)の組合せで指定します。指定された値はページ長の整数倍に切り上げます。単位記号Kはキロバイト、単位記号Mはメガバイトを示します。1キロバイトは1024バイト、1メガバイトは1024キロバイトです。
使用例
会社表のインデックスのDSIを定義します。インデックスのDSO定義は、“3.13 CREATE DSO文(インデックスのDSO定義文)”の例3で定義されています。
CREATE DSI 会社表インデックスDSI INDEX DSO 会社表インデックスDSO ALLOCATE BASE ON DBSPACE001 SIZE 4000K, INDEX ON DBSPACE002 SIZE 100K
在庫表のインデックスのDSIを定義します。なお、在庫表は製品名と倉庫番号の値で分割格納するものとします。この表のDSO定義は、“3.14 CREATE DSO文(表のDSO定義文)”の例4で、インデックスのDSO定義は、“3.13 CREATE DSO文(インデックスのDSO定義文)”の例4で、また、対応する表のDSIは、“3.12 CREATE DSI文(表のDSI定義文)”の例3で、それぞれ定義されています。
CREATE DSI 在庫表インデックスDSIテレビ2 INDEX DSO 在庫表インデックスDSO BASE 在庫表DSIテレビ2 ALLOCATE BASE ON DBSPACE001 SIZE 300K, INDEX ON DBSPACE002 SIZE 50K
会社表のインデックスのDSIを定義します。インデックスのDSO定義は、“CREATE DSO文(インデックスのDSO定義文)”の例3で定義されています。アラームポイントの契機をDSIの使用容量150キロバイト、自動容量拡張の拡張契機を空きページ容量0キロバイト、拡張量を1メガバイトとします。
CREATE DSI 会社表インデックスDSI INDEX DSO 会社表インデックスDSO ALLOCATE BASE ON DBSPACE001 SIZE 200K, INDEX ON DBSPACE002 SIZE 40K, EXPAND ON DBSPACE001 ALARM 150K CAPACITY 0K SIZE 1M
注意
FORMATを指定した場合、割付け量に応じて時間がかかります。