Re: Date Parameter To Query Confusing Optimizer

From: bricklen <bricklen(at)gmail(dot)com>
To: Kurt Westerfeld <kwesterfeld(at)novell(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Date Parameter To Query Confusing Optimizer
Date: 2011-01-03 23:54:53
Message-ID: AANLkTi=DhjDzkfskaDHxx=HmFBQSqtg3zPpsVW22mcDx@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Mon, Jan 3, 2011 at 2:48 PM, Kurt Westerfeld <kwesterfeld(at)novell(dot)com> wrote:
> I have a JDBC-based application which passes date/time parameters using JDBC
> query parameters, which is performing very badly (ie. doing full table
> scans).  In an effort to try to narrow down the problem, I am taking the
> query and running it in interactive SQL mode, but changing the date
> parameters (which are BETWEEN ? and ? clauses) and placing a date literal
> instead, using the "date '2011-01-01' syntax.  When I do this, the query
> runs instantly, obviously using indices on the tables involved.

Try using PREPARE to simulate your issue. We ran into a similar issue
using PHP and prepared statements, where the plan choices were
occasionally abysmal depending what the filters were and their
relative distributions within the table.

http://www.postgresql.org/docs/current/interactive/sql-prepare.html

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Craig Ringer 2011-01-03 23:56:40 Re: Shit happens
Previous Message Alexander Farber 2011-01-03 22:52:37 Re: Merging 2 rows in a table