|
分類:[データベース全般]
sqlserver2000を使用しています。 オプティマイザが選択するインデックスについて質問があります。
例えば、hogeID、fugaDate、piyoNameの3項目があり、 hogeIDにのみクラスタ化インデックスがついているhogeテーブルがあります。ここから、
�@fugaDateに対するインデックス(IX_fuga)を追加しました �Aさらに、fugaDate,hogeIDに対するインデックス(IX_fugahoge)を追加しました
【質問です】 上記�@�Aで作成したうち、どちらか一方は不要なインデックスでしょうか?
【疑問点】 と言いますのも、統計情報で確認した際、�@�Aそれぞれ全く同じ情報が表示されます。
�@(IX_fuga) fugaDate fugaDate,hogeID
�A(IX_fugahoge) fugaDate fugaDate,hogeID
単一インデックス(�@)であっても、クラスタ化インデックス(hogeID)がキーの一部となることは何となく理解できるのですが、 表示される統計情報(すべての密度値)も全く同じです。 (当然、最初の列であるfugaDateに対するヒストグラム(RANGE_ROWSやEQ_ROWS)も同じ値が表示されています。)
統計情報で同じ情報が表示されている限りは、�@�Aは全く同じであり、いずれか片方は不要なインデックスと言えますでしょうか? 深いところまで見えてないので、将来オプティマイザの選択で、単一、複合とで差が出るのか出ないのか、不安があります。
以上です。よろしくお願い致します。
|