ページの先頭行へ戻る
Symfoware Server V12.2.0 RDB運用ガイド(データベース定義編)
FUJITSU Software

2.7.3 インデックスのDSO定義

インデックスのDSO定義は、CREATE DSO文を使用して行います。インデックスは、ある列を用いた条件検索を行うとき、検索効率を向上させるために、探索条件で使用する列に対して定義します。

表定義にPRIMARY KEYまたはUNIQUEが指定されている場合、その列と同一構成(順序は同一)のインデックスのDSO定義が必要となります。表のデータ構造にRANDOMを指定した場合には、CLUSTER KEYにPRIMARY KEYまたはUNIQUE KEYの1つを対応づけることができます。この場合には、インデックスのDSO定義は不要です。

また、すでにデータが格納されている表に対して、新たなインデックスのDSO定義を追加することが可能です。

以下にインデックスのDSO定義の例を示します。

インデックスのDSO定義

インデックスを作成する表の名前(表名)とインデックスを構成する列(列名リスト)の指定が、キー指定になります。

表のデータ構造がSEQUENTIALの場合

CREATE DSO  製品番号IXDSO  INDEX ON STOCKS.在庫表 (製品番号)
                   ↑                       ↑          ↑
                  DSO名                    表名     列名リスト
                                                   ↑
                                                キー指定

                              TYPE BTREE(PAGESIZE1(16),PAGESIZE2(1), REALIGNMENT)
                                                       ↑
                                                   データ構造
                              BY ADDRESS
                                   ↑
                               ベース表現

表のデータ構造がRANDOMの場合

CREATE DSO  製品番号IXDSO  INDEX ON STOCKS.在庫表 (製品番号)
                   ↑                       ↑          ↑
                  DSO名                    表名     列名リスト
                                                    ↑
                                                 キー指定

                            TYPE BTREE(PAGESIZE1(16),PAGESIZE2(1), REALIGNMENT)
                                                     ↑
                                                 データ構造
                              BY KEY
                                  ↑
                              ベース表現

表のデータ構造がOBJECTの場合

CREATE DSO  製品写真表IXDSO  INDEX ON S1.製品写真表   (製品番号)
                     ↑                          ↑            ↑
                    DSO名                       表名       列名リスト
                                                          ↑
                                                       キー指定

                              TYPE BTREE(PAGESIZE1(16),PAGESIZE2(1), REALIGNMENT)
                                                      ↑
                                                  データ構造
                              BY ADDRESS
                                   ↑
                              ベース表現

DSO

DSO名には、36文字以内の先頭が英字で始まる英数字、または18文字以内の日本語文字列を指定します。DSO名は、データベース内で一意です。

キー指定

インデックスを作成する表名、およびインデックスを構成する列名リストを指定します。

表名

格納形式定義の対象とする実表の名前を指定します。表名は、スキーマ名で修飾されている必要があります。

列名リスト

インデックスを作成する列名を指定します。インデックスの列名リストに指定可能な列のデータ型は、以下のとおりです。

表2.7 インデックスの列名リストに指定可能な列のデータ型

属性

精度

位取り

長さ

備考

SMALLINT

  

INTEGER

  

NUMERIC

1~18

0~精度

  

DECIMAL

1~18

0~精度

  

CHARACTER

1~1000

VARYINGも指定可

NATIONAL CHARACTER

1~500

VARYINGも指定可

DATE

  

TIME

  

TIMESTAMP

  

INTERVAL

  

データ構造

インデックスのデータ格納時のデータ構造について指定します。BTREEが指定可能です。

BTREE

PAGESIZE1は、データ部のページ長を指定します。

PAGESIZE2は、インデックス部のページ長を指定します。

詳細については、“4.2.1 BTREE構造”を参照してください。

ベース表現

インデックスとベースの対応関係のもち方を指定します。省略するとSEQUENTIALまたはOBJECTにはADDRESSが、RANDOMにはKEYが指定されたものとみなします。

ADDRESS:

インデックスと表のレコードが、表のレコードの格納アドレスによって対応関係をもちます。表のデータ構造がSEQUENTIALまたはOBJECTの場合に指定します。

KEY:

インデックスと表のレコードが、表のレコードのクラスタキーによって対応関係をもちます。表のデータ構造がRANDOMの場合に指定します。