機能
インデックスのDSOを定義します。
データベース簡単運用の場合は利用できません。
記述形式
参照項番
日本語文字列 → “2.1.3 トークン”
権限
インデックスのDSOを定義できるのは、その表の定義者、スキーマの定義者またはその表のINDEX権の保持者です。
一般規則
作成する表のDSOの名前を指定します。
DSO名には、36文字以内の先頭が英字で始まる英数字、または18文字以内の日本語文字列を指定します。
DSO名は、データベース内で一意の名前であることが必要です。
列名をカンマ(,)で区切り指定します。
列名リストは、インデックスを構成する列の組合せを指定します。
列名リストに指定できる列の数は、最大64個です。
列名リストの列名に対するデータ型で指定できる長さの合計は、最大1000バイトです。
列名リストに、データ型が概数型またはBLOB型の列の列名を指定することはできません。
指定可能な格納オプションを以下に示します。
指定可能な格納オプション | 意味 | nに指定可能な値 (注) |
---|---|---|
PAGESIZE1(n) | データ部のページ長 | 1,2,4,8,16または32 |
PAGESIZE2(n) | インデックス部のページ長 | |
DEGENERATE | ページの再使用の有無 | - |
REALIGNMENT | ページの再配置の有無 | - |
注) ページ部に指定する値の単位は、キロバイトです。1キロバイトは1024バイトです。
参照
データ部およびインデックス部の構造については、“RDB運用ガイド(データベース定義編)”を参照してください。
インデックスを縮退する場合に指定します。
DEGENERATEを指定すると、行の削除によりインデックスのページ内に有効なデータがなくなった場合に、そのページを未使用として管理し、行の追加時に新たなページが必要になった時点で再使用を行います。DEGENERATEを指定しない場合には、有効なデータがなくなったページについてこの管理は行われません。
DEGENERATEを指定することにより、インデックススペースの利用効率が向上し、インデックスの再創成の契機を減らすことが可能となります。
DSO定義でPRECEDENCE(1)が指定されたSEQUENTIAL構造の表にインデックスを作成する場合、本オプションを指定することはできません。
使用例
会社表に会社名で構成するインデックスのDSOを定義します。(表のデータ構造がSEQUENTIAL)
CREATE DSO 会社表インデックスDSO INDEX ON S1.会社表 (会社名) TYPE BTREE(PAGESIZE1(16),PAGESIZE2(1),REALIGNMENT) BY ADDRESS
在庫表に製品名と倉庫番号から構成するインデックスのDSOを定義します。(表のデータ構造がSEQUENTIAL)
CREATE DSO 在庫表インデックスDSO INDEX ON S1.在庫表 (製品名,倉庫番号) TYPE BTREE(PAGESIZE1(16),PAGESIZE2(1),REALIGNMENT) BY ADDRESS
会社表に会社名で構成するインデックスのDSOを定義します。(表のデータ構造がRANDOM)
CREATE DSO 会社表インデックスDSO INDEX ON S1.会社表 (会社名) TYPE BTREE(PAGESIZE1(16),PAGESIZE2(1),REALIGNMENT) BY KEY
在庫表に製品名と倉庫番号から構成するインデックスのDSOを定義します。(表のデータ構造がRANDOM)
CREATE DSO 在庫表インデックスDSO INDEX ON S1.在庫表 (製品名,倉庫番号) TYPE BTREE(PAGESIZE1(16),PAGESIZE2(1),REALIGNMENT) BY KEY
注意
縮退指定(DEGENERATE)および再配置指定(REALIGNMENT)は、インデックスのDSI定義文およびインデックスのDSO定義文でそれぞれ指定が可能です。それぞれで異なる指定をした場合、インデックスのDSI定義文で指定した値が有効になります。インデックスのDSI定義文に縮退指定(DEGENERATE)および再配置指定(REALIGNMENT)を省略した場合は、インデックスのDSO定義文の指定に従います。