Symfoware Parallel Server RDBユーザーズガイド データベース定義編 |
目次
索引
![]() ![]() |
第2章 データベースの作成 | > 2.7 格納構造の定義 |
インデックスのDSO定義は、CREATE DSO文を使用して行います。インデックスは、ある列を用いた条件検索を行うとき、検索効率を向上させるために、探索条件で使用する列に対して定義します。
STRIPE構造で、特定のキー値によるレコード検索または更新処理を高速に行うときにインデックスを利用する場合は、“BTREE構造”を参照してください。なお、STRIPE構造の場合は、一意性制約に対してはHASH構造を、それ以外に対してはBTREE構造を定義するよう、目的に応じて使い分けてください。
表定義にPRIMARY KEYまたはUNIQUEが指定されている場合、その列と同一構成(順序は同一)のインデックスのDSO定義が必要となります。表のデータ構造にRANDOMを指定した場合には、CLUSTER KEYにPRIMARY KEYまたはUNIQUE KEYのひとつを対応づけることができます。この場合には、インデックスのDSO定義は不要です。
また、すでにデータが格納されている表に対して、新たなインデックスのDSO定義を追加することが可能です。
以下にインデックスのDSO定義の例を示します。
例
インデックスのDSO定義
表のデータ構造がSTRIPEの場合
CREATE DSO 在庫表IXDSO INDEX ON STOCKS.在庫表 (製品番号)
(1) (2) (3)
(4)
TYPE HASH(PAGESIZE1(16),PAGESIZE2(1),DEGENERATE)
(5)
BY ADDRESS
(6)
(1) DSO名
(2) 表名
(3) 列名リスト
(4) キー指定
(5) データ構造
(6) ベース表現
表のデータ構造がSEQUENTIALの場合
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) ベース表現
表のデータ構造がRANDOMの場合
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名は、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は、表のデータ構造がSEQUENTIAL構造、RANDOM構造およびSTRIPE構造の場合に指定します。
PAGESIZE1は、データ部のページ長を指定します。
PAGESIZE2は、インデックス部のページ長を指定します。
DEGENERATEを指定した場合は削除領域を再使用し、指定しない場合は削除領域を再使用しません。
詳細については、“BTREE構造”を参照してください。
HASHは、表のデータ構造がSTRIPE構造の場合で、一意性制約に対して指定します。
PAGESIZE1は、データ部のページ長を指定します。
PAGESIZE2は、インデックス部のページ長を指定します。
DEGENERATEを指定した場合は削除領域を再使用し、指定しない場合は削除領域を再使用しません。
詳細については、“HASH構造”を参照してください。
インデックスとベースの対応関係のもち方を指定します。省略するとSTRIPEまたはSEQUENTIALにはADDRESSが、RANDOMにはKEYが指定されたものとみなします。
目次
索引
![]() ![]() |