[pgsql-jp: 27173] Re: インデックスが使われない
Akira Atsumi
a-atsumi @ technobank.co.jp
2002年 8月 28日 (水) 11:31:32 JST
あつみです。
> SELECT TO_CHAR(最初のアクセス,'YYYY/MM/DD'), COUNT(ユーザー名) FROM
> (SELECT MIN(アクセス時刻) as 最初のアクセス, ユーザー名 FROM Table GROUP BY
> ユーザー名) as t
> WHERE 最初のアクセス BETWEEN 出力開始日 AND 出力終了日
> GROUP BY TO_CHAR(最初のアクセス,'YYYY/MM/DD')
> ORDER BY 1 DESC
> CREATE INDEX ユーザー名_index on table (ユーザー名)
> CREATE INDEX アクセス日_index on table (アクセス日)
SQLを解りやすく(?)書き換えられているようですが、「アクセス時刻」と
「アクセス日」は違うものででしょうか。であれば、2つめのindexは今回の
SQLには関係ない事になります。
ですが、いずれにしろサブクエリ部分はテーブルの全件を対象としている
ので、indexは使われないんじゃないでしょうか。
一度
set enable_seqscan to 'OFF';
を発行して強制的にindexを使用するようにして、速度を比較してみては
どうでしょう。
-----
Akira Atsumi
a-atsumi @ technobank.co.jp
pgsql-jp メーリングリストの案内