ページの先頭行へ戻る
Symfoware Server V10.1.1 SQLリファレンス
Symfoware

3.13 CREATE DSO文(インデックスのDSO定義文)

機能

インデックスのDSOを定義します。

データベース簡単運用の場合は利用できません。

記述形式

表のDSOのデータ構造がSEQUENTIALまたはOBJECTの場合

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

構文の構成

参照項番

権限

一般規則

DSO
  • 作成する表のDSOの名前を指定します。

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

  • DSO名は、データベース内で一意の名前であることが必要です。

表名
  • 表名は、インデックスを作成する表の名前を指定します。

  • 表名は、スキーマ名で修飾されていることが必要です。

列名リスト
  • 列名をカンマ(,)で区切り指定します。

  • 列名リストは、インデックスを構成する列の組合せを指定します。

  • 列名リストに指定できる列の数は、最大64個です。

  • 列名リストの列名に対するデータ型で指定できる長さの合計は、最大1000バイトです。

  • 列名リストに、データ型が概数型またはBLOB型の列の列名を指定することはできません。

格納オプション(PAGESIZE1PAGESIZE2DEGENERATEREALIGNMENT)
  • 指定可能な格納オプションを以下に示します。

    表3.4 インデックスのDSOに指定可能な格納オプション

    指定可能な格納オプション

    意味

    nに指定可能な値 (注)

    PAGESIZE1(n)

    データ部のページ長

    1,2,4,8,16または32

    PAGESIZE2(n)

    インデックス部のページ長

    DEGENERATE

    ページの再使用の有無

    REALIGNMENT

    ページの再配置の有無

    注) ページ部に指定する値の単位は、キロバイトです。1キロバイトは1024バイトです。

    参照

    データ部およびインデックス部の構造については、“RDB運用ガイド(データベース定義編)”を参照してください。

縮退指定(DEGENERATE)
  • インデックスを縮退する場合に指定します。

  • DEGENERATEを指定すると、行の削除によりインデックスのページ内に有効なデータがなくなった場合に、そのページを未使用として管理し、行の追加時に新たなページが必要になった時点で再使用を行います。DEGENERATEを指定しない場合には、有効なデータがなくなったページについてこの管理は行われません。

    DEGENERATEを指定することにより、インデックススペースの利用効率が向上し、インデックスの再創成の契機を減らすことが可能となります。

  • DSO定義でPRECEDENCE(1)が指定されたSEQUENTIAL構造の表にインデックスを作成する場合、本オプションを指定することはできません。

再配置指定(REALIGNMENT)
  • REALIGNMENTを指定すると、データの再配置を行うことでインデックスのアクセスを常に最適な状態に保ち、インデックスの再編成を不要にします。本機能は、24時間連続運転などの業務を中断して、インデックスの再編成が実施できない場合に指定します。

  • DSO定義でPRECEDENCE(1)が指定されたSEQUENTIAL構造の表にインデックスを作成する場合、本オプションを指定することはできません。

ベース表現(ADDRESSまたはKEY)
  • ベース表現は、インデックスとベースの対応関係の持ち方を指定します。省略すると表のデータ構造がSEQUENTIALまたはOBJECTの場合には、ADDRESS、RANDOMの場合には、KEYが指定されたものとみなされます。

ADDRESS:

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

KEY:

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

使用例

1

会社表に会社名で構成するインデックスのDSOを定義します。(表のデータ構造がSEQUENTIAL)

CREATE DSO  会社表インデックスDSO
            INDEX ON S1.会社表 (会社名)
            TYPE BTREE(PAGESIZE1(16),PAGESIZE2(1),REALIGNMENT)
            BY ADDRESS

2

在庫表に製品名と倉庫番号から構成するインデックスのDSOを定義します。(表のデータ構造がSEQUENTIAL)

CREATE DSO  在庫表インデックスDSO
            INDEX ON S1.在庫表 (製品名,倉庫番号)
            TYPE BTREE(PAGESIZE1(16),PAGESIZE2(1),REALIGNMENT)
            BY ADDRESS

3

会社表に会社名で構成するインデックスのDSOを定義します。(表のデータ構造がRANDOM)

CREATE DSO  会社表インデックスDSO
            INDEX ON S1.会社表 (会社名)
            TYPE BTREE(PAGESIZE1(16),PAGESIZE2(1),REALIGNMENT)
            BY KEY

4

在庫表に製品名と倉庫番号から構成するインデックスの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定義文の指定に従います。