Symfoware Server RDB運用ガイド(データベース定義編) - FUJITSU -
目次 索引 前ページ次ページ

第2章 データベースの作成> 2.7 格納構造の定義

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名は、データベース内で一意です。

■キー指

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

◆表名

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

◆列名リス

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

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

属性

精度

位取り

長さ

備考

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は、インデックス部のページ長を指定します。

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

■ベース表

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

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

目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2007-2008