Symfoware Parallel Server RDBユーザーズガイド データベース定義編
目次 索引 前ページ次ページ

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

2.7.2 インデックスのDSO定義

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

STRIPE構造で、特定のキー値によるレコード検索または更新処理を高速に行うときにインデックスを利用する場合は、“BTREE構造”を参照してください。なお、STRIPE構造の場合は、一意性制約に対してはHASH構造を、それ以外に対してはBTREE構造を定義するよう、目的に応じて使い分けてください。

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

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

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

インデックスのDSO定義
CREATE DSO  製品名IXDSO  INDEX ON STOCKS.在庫表製品名) 
                  (1)                        (2)         (3)
                                                  (4)

                              TYPE BTREE(PAGESIZE1(16),PAGESIZE2(1))
                                                  (5)
                              BY ADDRESS 
                                   (6)

(1) DSO名

(2) 表名

(3) 列名リスト

(4) キー指定

(5) データ構造

(6) ベース表現

CREATE DSO  製品名IXDSO  INDEX ON STOCKS.在庫表製品名) 
                  (1)                      (2)          (3)
                                                 (4)

                              TYPE BTREE(PAGESIZE1(16),PAGESIZE2(1)) 
                                             (5)

                              BY KEY 
                               (6)

(1) DSO名

(2) 表名

(3) 列名リスト

(4) キー指定

(5) データ構造

(6) ベース表現

■DSO

DSO名は、18文字以内の先頭が英字で始まる英数字、または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

 

■データ構造

インデックスのデータ格納時のデータ構造について指定します。DSO定義でインデックスの格納構造を定義する場合には、BTREEまたはHASHが指定可能です。

◆BTREE

BTREEは、表のデータ構造がSEQUENTIAL構造、RANDOM構造およびSTRIPE構造の場合に指定します。

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

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

DEGENERATEを指定した場合は削除領域を再使用し、指定しない場合は削除領域を再使用しません。

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

◆HASH

HASHは、表のデータ構造がSTRIPE構造の場合で、一意性制約に対して指定します。

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

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

DEGENERATEを指定した場合は削除領域を再使用し、指定しない場合は削除領域を再使用しません。

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

■ベース表

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

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

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

All Rights Reserved, Copyright(C) 富士通株式会社 2006