Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL の使用法 » クエリ処理 » クエリの最適化と実行 » クエリ・パフォーマンスの向上 » インデックス

 

論理インデックスを使用したインデックスの共有

SQL Anywhere は物理インデックスと論理インデックスを使用します。物理インデックスは、インデックスがディスクに保存されるときの実際のインデックス構造です。論理インデックスは、物理インデックスへの参照です。プライマリ・キー、セカンダリ・キー、外部キー、一意性制約を作成するときに、データベース・サーバは、制約の論理インデックスを作成することで参照整合性を確保します。次に、データベース・サーバは制約を満たすインデックスがすでに存在するかどうかを確認します。条件を満たす物理インデックスがすでに存在する場合、データベース・サーバはその物理インデックスへの論理インデックスを指します。そのような物理インデックスが存在しない場合、データベース・サーバは新しい物理インデックスを作成してから、その物理インデックスへの論理インデックスを指します。

物理インデックスが論理インデックスの要件を満たすには、カラムとカラムの順序、および各カラムのデータの順序 (昇順や降順) が同一である必要があります。

データベース内のすべての論理インデックスと物理インデックスの情報は、それぞれ ISYSIDX システム・テーブルと ISYSPHYIDX システム・テーブルに記録されます。論理インデックスを作成すると、そのインデックス定義を保持するためにエントリが ISYSIDX システム・テーブルに作成されます。論理インデックスを満たすために使用される物理インデックスへの参照は、ISYSIDX.phys_id カラムに記録されます。物理インデックスは ISYSPHYIDX システム・テーブルに定義されます。

ISYSIDX システム・テーブルと ISYSPHYIDX システム・テーブルの詳細については、それぞれの対応するビューであるSYSIDX システム・ビューSYSPHYSIDX システム・ビューを参照してください。

複数の論理インデックスは単一の物理インデックスを指すことができるため、論理インデックスを使用するということは、データベース・サーバは重複した物理インデックスを作成して管理する必要がないということを意味します。

物理インデックスを削除すると、その定義が ISYSIDX システム・テーブルから削除されます。特定の物理インデックスを参照するだけの論理インデックスの場合は、その物理インデックスと、ISYSPHYIDX システム・テーブル内で対応するエントリも削除されます。

インデックスを作成する前に、そのインデックスを作成する必要があるかどうかを慎重に検討してください。どのようなときにインデックスを作成するかを参照してください。

リモート・テーブルに対して物理インデックスは作成されません。テンポラリ・テーブルの場合、物理インデックスは作成されますが、ISYSPHYSIDX に記録されず、使用後に廃棄されます。また、テンポラリ・テーブルの物理インデックスは共有されません。