From: | Richard Broersma Jr <rabroersma(at)yahoo(dot)com> |
---|---|
To: | David Gardner <David(dot)Gardner(at)yucaipaco(dot)com>, Novice Postgresql-list <pgsql-novice(at)postgresql(dot)org> |
Subject: | Re: Index on timestamp fields |
Date: | 2007-06-08 01:33:07 |
Message-ID: | 760204.2971.qm@web31805.mail.mud.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-novice |
--- David Gardner <David(dot)Gardner(at)yucaipaco(dot)com> wrote:
> I have a timestamp without timezone field in one of my tables that is used in the where clause
> of one of my queries:
> WHERE date_trunc('day',"backupReports"."start")= current_date
>
> I also built an index on that column, I'm assuming that by using the date_trunc() function in my
> where clause forces pgsql to perform a sequential scan.
> Is there a better way to do this? The query needs to return the full timestamp, although I am
> only selecting by date so changing the data type for the column won't work.
>
> Also would saving the value of current_date to a local variable improve performance?
I am not sure about putting current_date in a local variable but can create a better performing
index. Note that you can create indexes on an expression based on a field(s) in your table.
http://www.postgresql.org/docs/8.2/interactive/sql-createindex.html
CREATE INDEX "backupReportsDailyStart" ON "backupReports"."start" (
date_trunc('day', "backupReports"."start"));
This should run really fast since you will not have to scan an index for a value equal to
current_date.
Regards,
Richard Broersma Jr.
From | Date | Subject | |
---|---|---|---|
Next Message | Andrew Maclean | 2007-06-08 04:11:40 | How do I ensure a value does not exist in a column. |
Previous Message | Tom Lane | 2007-06-08 01:28:31 | Re: Index on timestamp fields |