Thread: Pushing LIMIT into sub-queries of a UNION ALL

Pushing LIMIT into sub-queries of a UNION ALL

From
Dave Johansen
Date:
I am using Postgres 8.3 and I have an issue very closely related to the one described here:
http://archives.postgresql.org/pgsql-general/2005-06/msg00488.php

Basically, I have a VIEW which is a UNION ALL of two tables but when I do a select on the view using a LIMIT, it scans the entire tables and takes significantly longer than writing out the query with the LIMITs in the sub-queries themselves. Is there a solution to get the view to perform like the sub-query version?

Thanks,
Dave

Re: Pushing LIMIT into sub-queries of a UNION ALL

From
Robert Haas
Date:
On Mon, May 16, 2011 at 3:38 PM, Dave Johansen <davejohansen@gmail.com> wrote:
> I am using Postgres 8.3 and I have an issue very closely related to the one
> described here:
> http://archives.postgresql.org/pgsql-general/2005-06/msg00488.php
>
> Basically, I have a VIEW which is a UNION ALL of two tables but when I do a
> select on the view using a LIMIT, it scans the entire tables and takes
> significantly longer than writing out the query with the LIMITs in the
> sub-queries themselves. Is there a solution to get the view to perform like
> the sub-query version?

I believe this is fixed by MergeAppend in 9.1.  You might want to try
9.1beta1 and see if that works better for you.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company