[prev in list] [next in list] [prev in thread] [next in thread] 

List:       postgresql-general
Subject:    [GENERAL] General subselect question
From:       Tim Hart <tjhart () me ! com>
Date:       2008-12-31 22:57:37
Message-ID: 3DF03291-82D2-4680-BF67-2DE3BAF5F177 () me ! com
[Download RAW message or body]

In the general case, is a subselect that uses union less performant  
than a union?

I have a query that looks something like this:

select <some columns>
from   table1,
           table2,
           table3
where <where clause>
union
select <select clause>
from    table1,
            table2,
            table3 ref1,
            table3 ref2
where <where clause>

I realized today that I could convert the query to

select <some columns>
from    table1,
            table2,
            ( select <some columns>
               from   table3
               where <where clause>
               union
               select <some columns>
               from    table3 ref1,
                          table3 ref2
               where  <where clause> )
where    <where clause>

For my specific case, I'll use EXPLAIN   to determine the performance  
difference. I'll weigh the performance benefits with the maintenance  
benefits ( less duplication of code for me on the second case) and  
decide (assuming I'm still motivated on Friday ;) ).

But in the general case, do I have to pay special attention with  
unions in subselects?

Tim Hart
615-713-9956 :cell
timothyjhart :Y!
tjhart@me.com :AIM

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic