[pgsql-jp: 27179] Re: インデックスが使われない
Ookubo Nobuhiko
n_okb @ brain-company.co.jp
2002年 8月 28日 (水) 15:17:04 JST
はじめまして。大久保と申します。
みつき@ さんは書きました:
---snip---
>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
この“アクセス時刻”というカラムの属性はtimestamp型でしょうか?
PostgreSQLは勉強始めたばかりであまり詳しくはないのですが、
GROUP句でTO_CHARを指定して文字型に変換しているためにIndexが
使用されないのではないのでしょうか?
Date型(日付のみ)のカラムを作り、それをIndexに作成してみたら
いかがでしょうか?
# 確かOracleではWhere句等で日付型の項目を文字型に変換して使用すると
# Indexは使用しなかったと思います。
# PostgreSQLではどのようになっているのでしょうか? > 識者の方々へ
---snip---
以上少しでもお役に立てれば幸いです。
pgsql-jp メーリングリストの案内