機能
表に付加するインデックスのデータを格納する領域を、データベーススペースに割り付けるために、DSIを定義します。
作成するインデックスのDSIの名前を指定します。
DSI名は、36文字以内の先頭が英字で始まる英数字、または18文字以内の日本語文字列を指定します。
DSI名は、データベース内で一意の名前であることが必要です。
インデックスのDSIを定義する表に、分割条件を指定した表のDSOを定義している場合、BASEオペランドを指定します。そうでない場合には、BASEオペランドは指定できません。BASEオペランドのDSI名には、インデックスを作成する表に対して定義済である、表のDSIの名前を指定します。このとき、インデックスのDSIは、ここで指定した表のDSIに対応するインデックスのデータの格納領域を定義します。
割付け対象には、BASEとINDEXを指定します。
スペース割付け句で指定する割付け対象の意味を以下に示します。
指定する割付け対象 | 意味(注) |
---|---|
BASE | インデックスのDSIの、データ部にスペースを割り付ける。 |
INDEX | インデックスのDSIの、インデックス部にスペースを割り付ける。 |
注)データ部およびインデックス部の構造については、“RDB運用ガイド(データベース定義編)”および“2.2.1 XMLデータのインデックスの格納構造”を参照してください。
インデックスのデータを格納するデータベーススペースの名前を指定します。
1つのDSIの割付け対象の割付け先として指定するデータベーススペース名は、同じロググループのデータベーススペースでなければなりません。また、関連する表のDSIで割り付けたデータベーススペースと同じロググループを使用するものでなければなりません。
割付け量には、データベーススペース中に獲得する格納領域の大きさを、符号なし整数と単位記号(KまたはM)の組合せで指定します。指定した値はページ長の整数倍に切り上げます。単位記号Kはキロバイト、単位記号Mはメガバイトを示します。1キロバイトは1024バイト、1メガバイトは1024キロバイトです。
インデックスのDSIのデータ部およびインデックス部に対する割付け量は、DSO名を指定したDSOに対してXMLグループ定義を定義していない場合は、それぞれのページ長の2倍以上を指定することが必要です。たとえば、データ部のページ長が2キロバイトの場合、データ部に対する割付け量は4キロバイト以上になるように指定します。インデックス部のページ長が1キロバイトの場合は、インデックス部に対する割付け量は2キロバイト以上になるように指定します。
DSO名を指定したDSOに対してXMLグループ定義を定義している場合は、インデックスのDSIのデータ部およびインデックス部に対する割付け量は、それぞれのページ長の(1+パス定義の個数)倍以上を指定することが必要です。パス定義の個数とは、DSOに対して定義しているすべてのXMLグループ定義のそれぞれで、指定しているパス定義の個数をすべて足したものとします。
割付け量を省略した場合のインデックスのDSIのデータ部およびインデックス部に対する割付け量は、それぞれDSO定義時のページ長の84倍とデータ部の割付け量の1/5倍になります。
使用例
XMLインデックスのDSO“伝票IXDSO”に対してDSIを定義
CREATE DSI 伝票IXDSI1 INDEX DSO 伝票IXDSO BASE 伝票表DSI1 ALLOCATE BASE ON DBSP_1 SIZE 200K, INDEX ON DBSP_1 SIZE 40K;