Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

クラスへのインデックスの追加

この章では、永続クラス定義にインデックス定義を追加する方法と編集する方法を説明します。

インデックス定義では、InterSystems IRIS® クラス・コンパイラに 1 つまたは複数のプロパティのインデックスを作成するように指定します。インデックスは通常、SQL クエリの効率を向上させるために使用されます。"SQL 最適化ガイド" の “インデックスの定義と構築” を参照してください。

インデックスをクラス定義に追加するには、以下の 2 つの方法があります。

  • クラス・エディタを使用して、クラス定義を編集する方法

  • 新規インデックス・ウィザードを使用する方法

クラス・エディタを使用してインデックスを追加するには、クラス・エディタの空の行にカーソルを置き、インデックス宣言を入力します。

Index NameIndex On Name;

また、既存のインデックス宣言をコピーして貼り付け、それを編集することもできます。

詳細は、"クラス定義リファレンス" の “インデックス定義” を参照してください。

新規インデックス・ウィザード

[クラス]→[追加]→[インデックス] を使用して、新規インデックス・ウィザードを起動します。または、クラス・インスペクタで右クリックして、[追加]→[新規インデックス] を選択します。ツールバーの [新規インデックス] ボタン lightening bolt with yellow starburst をクリックすることもできます。

新規インデックス・ウィザードでは、情報の入力が促されます。すべてのウィザード・ページを完了する前に [完了] をクリックした場合、指定していない情報には既定値が設定されます。

名前および説明ページ

新規インデックス・ウィザードでは、以下の情報の入力が促されます (これらの値は後で変更できます)。

インデックス名

(必須) 新規インデックスの名前。これは、有効なインデックス名である必要があります。定義済みの既存のインデックスと同じ名前を付けることはできません。

"サーバ側プログラミングの入門ガイド" の付録 “識別子のルールとガイドライン” にあるセクション “クラス・メンバ” を参照してください。

説明

(オプション) 新規インデックスに関する説明。この説明は、クラス・ドキュメントがオンライン・クラス・ライブラリ・ドキュメントで表示されるときに使用されます。

説明には、HTML フォーマット・タグを記述することもできます。"クラスの定義と使用" の “クラス・ドキュメントの作成” を参照してください。

インデックス・タイプ・ページ

InterSystems IRIS は以下のインデックス・タイプをサポートしています。

通常インデックス

通常インデックスは、プロパティ値のインデックス作成に使用します。以下のオプションの 1 つを選択することで、通常インデックスを詳細に定義できます。

パラメータ 説明
ユニーク・インデックス このインデックスに関連する一連のプロパティは、このクラスのオブジェクトのエクステント内で一意である、結合された値を持つ必要があります。
IDKEY このインデックスに関連する一連のプロパティは、オブジェクト ID の作成に使用します。オブジェクト ID は、データベースにこのクラスのインスタンスを保存するのに使用されます。オブジェクトが一度保存された後は、IDKEY 定義の一部であるプロパティ値を変更することはできません。IDKEY は、プロパティが一意であることを意味しています (ユニーク・インデックスと同様)。
SQL 主キー このインデックスに関連する一連のプロパティは、このクラスに投影された SQL テーブルの SQL 主キーとして報告されます。SQL 主キーは、プロパティが一意であることを意味しています (ユニーク・インデックスと同様)。
エクステント・インデックス

エクステント・インデックスは、オブジェクトの複数のクラス・エクステント内で、特定のクラスに属しているオブジェクトを記録するために使用します。これは、追加の属性を指定できない点で、“通常インデックス” とは異なります。

データベース内でのインデックスの物理的な実装方法を選択することもできます。

標準インデックス

このインデックスは、指定されたプロパティでの従来のクロス・インデックスです。

ビットマップ・インデックス

ビットマップ・インデックスは、指定したインデックス値に対応する一連のオブジェクト ID 値の圧縮表現を使用します。詳細は、"InterSystems SQL 最適化ガイド" の "ビットマップ・インデックス" を参照してください。

ビットスライス・インデックス

ビットスライス・インデックスは、合計や値域条件など、特定の式について非常に高速の評価を有効にする特殊な形式のインデックスです。詳細は、"InterSystems SQL 最適化ガイド" の "ビットスライス・インデックス" を参照してください。

インデックス・プロパティ・ページ

インデックス・プロパティのページでは、インデックスを基にした 1 つ、または複数のプロパティのリストを入力できます。各プロパティで、既定の照合関数をオーバーライドできます。既定の照合関数は、照合関数のすべてのパラメータと、インデックス内に保存された値を変換するために使用されます。

Important:

IDKEY インデックスによって使用されるどのプロパティの値においても、そのプロパティが永続クラスのインスタンスへの有効な参照でない限り、連続する 2 つの垂直バー (||) は使用しないでください。この制限は、InterSystems IRIS SQL のメカニズムが動作するための方法に起因しています。IDKey プロパティ で || を使用すると、予測できない動作が起こる可能性があります。

インデックス・データ・ページ

インデックス・データ・ページでは、プロパティのデータのコピーをインデックスに保存するかどうかを指定します。

ビットマップ・インデックスでは、データ値のコピーを保存することはできません。

新規インデックス・ウィザード実行の結果

新規インデックス・ウィザードの実行後、クラス・エディタは更新され、新規のインデックス定義が表示されます。以下に例を示します。

/// This is a Person class
class MyApp.Person extends %Persistent 
{

Property Name As %String;

Index NameIndex On Name;
}

インデックス定義を編集するには、クラス・エディタまたはクラス・インスペクタを使用できます。

インデックスの配置

インデックス定義をクラスに追加し、それをコンパイルした後、管理ポータルの [インデックス再構築] を使用して、インデックスを生成 (データを挿入) できます。詳細は、"InterSystems SQL 最適化ガイド" の “インデックスの構築” を参照してください。

スタジオでは、既存のデータのインデックスを自動的に生成しません。

FeedbackOpens in a new tab