IBM® Informix® 12.10

複合インデックスの使用

オプティマイザはいくつかの方法で複合インデックス (複数の列を網羅するインデックス) を使用することができます。

データベース サーバは、次の方法で、列 abc に対するインデックスを (その順番どおりに) 使用することができます。

最上位ディスティンクトから最下位ディスティンクトへの順で列の複合インデックスを作成した場合が、最も効果的に実行されます。つまり、SELECT 文でキーワード DISTINCT を使用して問合せが行われた場合、最も大きいディスティンクト行数を返す列が、複合インデックスの先頭に配置されるということです。

それぞれに ORDER BY 節または GROUP BY 節が含まれる複数の長い問合せをアプリケーションで実行する場合は、ソートをしなくてもこれらの順序付けを行うインデックスを追加することにより、パフォーマンスを改善できることがあります。次の問合せの例では、ORDER BY 節内のすべての列を異なる方向にソートします。
SELECT * FROM t1 ORDER BY a, b DESC;

一時表によって列 a を昇順に、列 b を降順にソートしないようにするため、複合インデックスを (ab DESC) または (a DESC、b) に作成する必要があります。データベース サーバには双方向トラバース機能があるため、どちらか 1 つのインデックスを作成する必要があります。双方向トラバースについて詳しくは、「IBM Informix SQL ガイド: シンタックス」を参照してください。

ただし、次の場合は、複合インデックスを使用する代わりに、表を走査してその結果をソートする方がコストが少なくて済みます。


フィードバックの送信 | 例の共有 | トラブルシューティング

PDF を見つけるには、Publications for the IBM Informix 12.10 family of products を参照してください。
リリース ノート、ドキュメント ノート、マシン ノートについては、リリース ノート・ページを参照してください。
タイムスタンプ リリース日: 2013 年 3 月