From: | Amit Kapila <amit(dot)kapila(at)huawei(dot)com> |
---|---|
To: | "'Ghislain ROUVIGNAC'" <ghr(at)sylob(dot)com>, <pgsql-performance(at)postgresql(dot)org> |
Subject: | Re: Not same plan between static and prepared query |
Date: | 2013-06-06 10:40:58 |
Message-ID: | 007201ce62a2$56c35930$044a0b90$@kapila@huawei.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
On Thursday, June 06, 2013 1:56 PM Ghislain ROUVIGNAC wrote:
> Hello,
> We have a strange issue related to a prepared statement.
> We have two equals queries where the sole difference is in the limit.
> - The first is hard coded with limit 500.
> - The second is prepared with limit $1 ($1 is bound to 500).
> PostgreSQL give us two different plans with a huge execution time for the
prepared query:
It can generate different plan for prepared query, because optimizer uses
default selectivity in case of bound parameters (in your case limit $1).
> We met the same behaviour with both :
> - PostgreSQL 8.4.8 on Windows 2008 (Prod)
> - PostgreSQL 8.4.8 and 8.4.17 on Windows 7 (Dev)
From PostgreSQL 9.2, it generates plan for prepared query during execution
(Execute command) as well.
So I think you will not face this problem in PostgreSQL 9.2 and above.
With Regards,
Amit Kapila.
From | Date | Subject | |
---|---|---|---|
Next Message | Kevin Grittner | 2013-06-06 12:53:18 | Re: Check Pointer |
Previous Message | Ghislain ROUVIGNAC | 2013-06-06 08:25:31 | Not same plan between static and prepared query |