Tips

複合インデックスの数を調べる方法

日付2011/04/14
ID76297 (英語原文参照)
バージョン11
プラットフォームMac/Win

データベースに定義された複合インデックスの数は, SQLでシステムテーブルを検索することにより, 調べることができます。_USER_IND_COLUMNSシステムテーブルには, 各インデックスのINDEX_IDが登録されていますが, 複数のフィールドで構成される複合インデックスについては, INDEX_IDフィールドの値が同一である一方, 他のフィールド(具体的にはCOLUMN_POSITION)に補足的な情報が登録されています。したがって次のようなコードを実行することにより, 複合インデックスを検出することができます。

C_LONGINT($0;$NumberOfCompositeIndexes_l)
Begin SQL
   SELECT COUNT(COLUMN_POSITION)
   FROM _USER_IND_COLUMNS
   WHERE COLUMN_POSITION = 2
   INTO :$NumberOfCompositeIndexes_l;
End SQL
$0:=$NumberOfCompositeIndexes_l

COLUMN_POSITIONが2以上であるということは, それが複合インデックスであることを示唆しています。複合インデックスにおけるフィールドの順番は重要ですが, 単純に総数を知りたいだけであれば, 上記のような方法でじゅうぶんです。