インデックス特性

[インデックス特性]には、インデックスの動作特性が定義されます。[インデックス特性]には以下のタブがあります。

[高度な設定]タブ

特性

内容

方向

以下のどちらかを指定します。

  • T=双方向 …… このデータソースを順方向および逆方向にソートできるようになります。通常は、双方向へのアクセスがサポートされないデータベースをオンラインタスクで使用する場合などに指定します。インデックスをバッチタスクで使用したり、データベースが双方向のインデックスをサポートしていない場合は、通常、片方向として定義します。データベースゲートウェイによっては、この特性を無視し、双方向のインデックスをデフォルトとしているものもあります。しかし、SQL系のデータベースでは、この情報を使用することでインデックスを双方向とするか、片方向とするかを指定することができます。

  • O=片方向 …… 順方向のアクセスのみを実行します。

注意:

データベースに応じてこの設定を切り替えると、処理速度が向上します。

範囲処理モード

  • Q=高速 …… 定義したインデックスは、インデックスを使用した高速範囲処理をサポートしています。

  • F=全走査 …… 範囲処理は順次操作方式で実行されます。この設定にすると、処理速度が大幅に低下します。

[SQL]タブ

特性

内容

データベース情報

SQLデータベースの情報をここに設定することで、データベース特有の情報をRDBMSに渡すことができます。この特性の使用はオプションです。

使用するフラグのほとんどは、SQL_flagname=Valueという構造を持ちます。

DBインデックス名

RDBMSに設定されるインデックスの名前です。通常、この名前はデータベースの命名規則に従う必要があります。

テーブルに新規のインデックスを追加すると、そのインデックスの名前が、この[DBインデックス名]特性にコピーされます。また、文字間の空白は自動的にアンダーバに置き換えられます。コピーされたインデックス名は変更できますが、空白にすることはできません。

例えば、Magic uniPaaSのインデックス名「emp ind1」は、DBインデックス名「emp_ind1」になります。

インデックスタイプ

対象となるインデックスをデータベースに入れるか、Magic uniPaaSだけで定義するかを指定します。

使用できる値は、「R=実キー」または「V=仮想キー」です。テーブルの新規作成時にそのインデックスをMagic uniPaaSで作成する場合は、インデックスタイプを「R=実キー」に指定しなければなりません。

[インデックスタイプ]特性は、実行時には既存のテーブルに影響しません。例えば、エンドユーザがデータビューにアクセスする場合には、実インデックスを追加する必要があります。

特にRDBMSのソート機能が利用できる場合は、プログラム内でソート処理の代わりに仮想インデックスを使用することはなるべく避けてください。この機能を利用することでレコードを任意の順序で取り出せるため、Magic uniPaaSではソート機能が不要になります。

ヒント

一部のRDBMSでは、クエリ処理の際にオプティマイザに対するヒントが指定できます。プログラマはSELECT文に連結する文字列をここに指定することができます。

対応するゲートウェイ:MS-SQL、Oracle

クラスタ化

MS-SQL Serverの場合、この特性を使用して、テーブルを作成する際に、そのテーブルのインデックスをクラスタ化インデックスとして作成するかどうかを指定できます。

レコードの挿入が多いテーブルの場合、クラスタ化インデックスによって処理速度を低下させることがあります。

クラスタ化インデックスのカラムでは、物理データは、そのインデックスの順にしたがって格納されます。このインデックスでは、順番に並んでいるデータのうち、複数のデータをまとめて取り出す時には処理効率は上がりますが、単一のデータを取り出す時には効率は下がります。

対応するゲートウェイ:MS-SQL

デフォルト値:No

関連トピック

SQLに関する考慮事項