Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.misc -> UNION of two SELECT extremely slow
Hi All,
I'm fighting with the weird problem. I have a public ASP application
and suddenly one user reported the problem - very slow rendering of a
page. I've localized the problem and it is about UNION operation. There
are two SELECT statements, each of them work very very normaly
(1-2secs) when being ran separately, but when I try to do UNION of
them, the whole query executes more than 3minutes (!!!). It's really
weird.
Anyone has any thoughts about it?
Thanks a lot in advance!!!
Here is the query:
select vw.ID as bweid,b.PE_SUBMITTED, vw.BUDGET_ID, vw.CATEGORY_ID, vw.CATEGORY_NAME as CAPTION, vw.USER_DEFINED_CATEGORY as ADDLINE, 0 as hasedit, vw.SUPERCATEGORY_ID as PARENTID, vw.SUPER_CATEGORY_NAME as PARENTCAPTION, vw.PARENT_UDC, vw.CAPTION_UNIT_COST, vw.CAPTION_MULTIPLIER_1, vw.CAPTION_MULTIPLIER_2, vw.EXPENSE_ACCOUNT_CODE as EXPCODE, vw.UNIT_COST, vw.MULTIPLIER_1, vw.MULTIPLIER_2, vw.COMMENTS, vw.APPLICABLE, vw.DISPLAY_SEQUENCE
from vw_BWS_entry vw, BUDGET b, budget_item bi where vw.budget_id=b.id and b.meeting_id='889445' and applicable=1 and vw.BUDGET_ITEM_CATEGORY_ID=bi.BUDGET_ITEM_CATEGORY_ID and bi.BUDGET_ID=b.ID and vw.BUDGET_ITEM_CATEGORY_ID in
(
select distinct bic.id from budget_item_category bic,budget_item bi, invoice_line_item i, budget b where bic.ID= bi.BUDGET_ITEM_CATEGORY_ID and bi.ID=i.BUDGET_ITEM_ID and b.ID=bi.BUDGET_ID and b.meeting_id='889445' )
UNION select vw.ID as bweid, b.PE_SUBMITTED, vw.BUDGET_ID, vw.CATEGORY_ID, vw.CATEGORY_NAME as CAPTION, vw.USER_DEFINED_CATEGORY as ADDLINE, 1 as hasedit, vw.SUPERCATEGORY_ID as PARENTID, vw.SUPER_CATEGORY_NAME as PARENTCAPTION, vw.PARENT_UDC, vw.CAPTION_UNIT_COST,
vw.CAPTION_MULTIPLIER_1, vw.CAPTION_MULTIPLIER_2, vw.EXPENSE_ACCOUNT_CODE as EXPCODE, vw.UNIT_COST, vw.MULTIPLIER_1, vw.MULTIPLIER_2, vw.COMMENTS, vw.APPLICABLE, vw.DISPLAY_SEQUENCE from vw_BWS_entry vw, BUDGET b, budget_item bi where vw.budget_id=b.id and b.meeting_id='889445' and applicable=1 and vw.BUDGET_ITEM_CATEGORY_ID=bi.BUDGET_ITEM_CATEGORY_ID and bi.BUDGET_ID=b.ID and vw.BUDGET_ITEM_CATEGORY_ID not in
(
select distinct bic.id from budget_item_category bic,budget_item bi, invoice_line_item i, budget b where bic.ID= bi.BUDGET_ITEM_CATEGORY_ID and bi.ID=i.BUDGET_ITEM_ID and b.ID=bi.BUDGET_ID and b.meeting_id='889445' ) order by DISPLAY_SEQUENCE,ADDLINE
Regards,
Goran M.
Received on Mon Jul 17 2006 - 04:35:58 CDT