OUTER JOIN vs UNION ... faster? - Mailing list pgsql-hackers

From The Hermit Hacker
Subject OUTER JOIN vs UNION ... faster?
Date
Msg-id Pine.BSF.4.33.0104240854000.4451-100000@mobile.hub.org
Whole thread Raw
List pgsql-hackers
Got a query that looks like:

========================================================================

SELECT card_info.main_cat, category_details.sub_cat_flag,count(*) FROM send0,card_info,category_detailsWHERE
send0.card_id=card_info.card_id AND category_details.mcategory='e-cards'  AND
card_info.main_cat=category_details.category AND send_date >= '2001/04/08'  AND send_date <= '2001/05/14' group by 1,2
 

UNION ALL

SELECT card_info.main_cat, category_details.sub_cat_flag,count(*) FROM send1,card_info,category_details where
send1.card_id=card_info.card_id AND category_details.mcategory='e-cards'  AND
card_info.main_cat=category_details.category AND send_date >= '2001/04/08'  AND send_date <= '2001/05/14' group by 1,2
 

UNION ALL

SELECT card_info.main_cat, category_details.sub_cat_flag,count(*) FROM send2,card_info,category_details where
send2.card_id=card_info.card_id AND category_details.mcategory='e-cards'  AND
card_info.main_cat=category_details.category AND send_date >= '2001/04/08'  AND send_date <= '2001/05/14' group by 1,2
 

UNION ALL

SELECT card_info.main_cat, category_details.sub_cat_flag,count(*) FROM send3,card_info,category_details where
send3.card_id=card_info.card_id AND category_details.mcategory='e-cards'  AND
card_info.main_cat=category_details.category AND send_date >= '2001/04/08'  AND send_date <= '2001/05/14' group by 1,2
 

UNION ALL

SELECT card_info.main_cat, category_details.sub_cat_flag,count(*) FROM send4,card_info,category_details where
send4.card_id=card_info.card_id AND category_details.mcategory='e-cards'  AND
card_info.main_cat=category_details.category AND send_date >= '2001/04/08'  AND send_date <= '2001/05/14' group by 1,2
 

UNION ALL

SELECT card_info.main_cat, category_details.sub_cat_flag,count(*) FROM send5,card_info,category_details where
send5.card_id=card_info.card_id AND category_details.mcategory='e-cards'  AND
card_info.main_cat=category_details.category AND send_date >= '2001/04/08'  AND send_date <= '2001/05/14' group by 1,2
 

UNION ALL

SELECT card_info.main_cat, category_details.sub_cat_flag,count(*) FROM send6,card_info,category_details where
send6.card_id=card_info.card_id AND category_details.mcategory='e-cards'  AND
card_info.main_cat=category_details.category AND send_date >= '2001/04/08'  AND send_date <= '2001/05/14' group by 1,2
 

UNION ALL

SELECT card_info.main_cat, category_details.sub_cat_flag,count(*)

========================================================================

*Really* dreading the thought of changing it to an OUTER JOIN, and am
wondering if there would be a noticeable speed difference between going
from the UNION above to an OUTER JOIN, or should they be about the same?


Marc G. Fournier                   ICQ#7615664               IRC Nick: Scrappy
Systems Administrator @ hub.org
primary: scrappy@hub.org           secondary: scrappy@{freebsd|postgresql}.org



pgsql-hackers by date:

Previous
From: Hannu Krosing
Date:
Subject: Re: Look what book I found
Next
From: Max Khon
Date:
Subject: Re: RI oddness