複合インデックスの数を調べる方法
日付 | 2011/04/14 |
---|---|
ID | 76297 (英語原文参照) |
バージョン | 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以上であるということは, それが複合インデックスであることを示唆しています。複合インデックスにおけるフィールドの順番は重要ですが, 単純に総数を知りたいだけであれば, 上記のような方法でじゅうぶんです。