ユーザーガイド > パフォーマンスチューニング > クエリーのパフォーマンスを向上させるためのインデックス、主キー、外部キーの使用
 
クエリーのパフォーマンスを向上させるためのインデックス、主キー、外部キーの使用
インデックスを使用すると、データベーステーブルからのデータの検索または取得を高速化できます。インデックスと主キーを指定すると、TDVクエリーエンジンは論理アルゴリズムを使用して、より高速かつ効率的に結合を実行できるようになります。
通常、列にインデックスが作成されると、その列のすべてのデータがスキャンされ、データ構造(インデックス)が構築されます。インデックスにより、その列のデータの検索が高速になりますが、インデックスを作成すると、テーブルに行を挿入するトランザクションが遅くなる可能性もあります。行のデータが変更されるたびに、インデックスの内容が自動的に更新されます。
Studioでは、ビューおよびテーブルエディターの[Indexes(インデックス)]パネルを使用して、データソースにすでに存在するインデックスおよび主キーのメタデータラベルを作成できます。Studioでは、ビューおよびテーブルエディターの[Foreign Keys(外部キー)]パネルを使用して、データソースに存在する外部キーを使用する定義を作成できます。
TDVは、指定されたデータ構造を構築しませんが、既存のリソースのデータ構造を利用できるようにするメタデータ定義を作成します。インデックスがあるため、クエリーと結合は必ずしも高速に実行されるとは限りません。メタデータインデックスとキーの仕様は検証されないため、主キーとしてマークされた列が一意の値を持つという保証はありません。
データサービスが公開されると、インデックスおよび主キー機能に関する情報が利用可能になるため、TDV Serverのクライアントはこの情報を活用できます。より高度なクライアントプログラムは、列インデックスと主キーに基づいて効率的なクエリーを生成できます。
TDVは、ビューのどの列にインデックスが作成されているか自動的に判別できない場合があります。たとえば、ある列がベーステーブルの主キーである場合があります。ただし、ビューでは、その値が主キーとして適格でない場合があります。
Studioでテーブルまたはビューのインデックスを作成する方法については、「[Indexes(インデックス)]パネルでのビューまたはテーブルの主キーの定義」を参照してください。