Skip to Main Content

Oracle Database Discussions

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

query not working fine

user10719327May 7 2009 — edited Sep 8 2012
Hi

db version is 9.2.0.8.0

in dev the query is working fine.But in qa the query is not working fine(hanging).I had checked the explain plans.
Both are different.This is due to difference in volume of data.
I am pasting the explain plans of both the queries in qa and dev
--------------------------------

qa explain plan
-------------------
------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)|
------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 606M| 118G| | 107M (1)|
| 1 | SORT GROUP BY | | 606M| 118G| 524G| 107M (1)|
| 2 | HASH JOIN | | 1869M| 363G| | 50748 (1)|
| 3 | TABLE ACCESS FULL | DIM_GEOGRAPHY_HIER | 9066 | 318K| | 331 (1)|
| 4 | HASH JOIN | | 2474K| 408M| 2232K| 50400 (1)|
| 5 | TABLE ACCESS FULL | DIM_GEOGRAPHY_HIER | 54396 | 1593K| | 330 (1)|
| 6 | HASH JOIN | | 2474K| 337M| | 31791 (1)|
| 7 | TABLE ACCESS FULL | DIM_PRODUCT_HIER | 206 | 3296 | | 25 (4)|
| 8 | HASH JOIN | | 3162K| 382M| | 31745 (1)|
| 9 | TABLE ACCESS FULL | DIM_PRODUCT_HIER | 3087 | 27783 | | 25 (4)|
| 10 | HASH JOIN | | 3162K| 355M| 2952K| 31699 (1)|
| 11 | MERGE JOIN CARTESIAN | | 62930 | 2212K| | 14627 (1)|
| 12 | INDEX FAST FULL SCAN | SYS_C0013071 | 2923 | | | 4 (25)|
| 13 | BUFFER SORT | | 22 | 792 | | 14623 (1)|
| 14 | TABLE ACCESS BY INDEX ROWID| CURCY_CONVERT_RATE | 22 | 792 | | 6 (17)|
| 15 | INDEX RANGE SCAN | XPKCURRATE | 22 | | | 5 (20)|
| 16 | TABLE ACCESS FULL | SHIPPABLE_BACKLOG_FACT | 321K| 25M| | 15494 (1)|
------------------------------------------------------------------------------------------------------------



dev explain plan
------------------------
------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)|
------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 17M| 2978M| | 927K (1)|
| 1 | SORT GROUP BY | | 17M| 2978M| 6504M| 927K (1)|
|* 2 | HASH JOIN | | 17M| 2978M| | 2726 (1)|
|* 3 | TABLE ACCESS FULL | DIM_GEOGRAPHY_HIER | 4992 | 180K| | 416 (1)|
|* 4 | HASH JOIN | | 41051 | 5852K| 2872K| 2309 (1)|
| 5 | TABLE ACCESS FULL | DIM_GEOGRAPHY_HIER | 69888 | 2047K| | 415 (1)|
|* 6 | HASH JOIN | | 41051 | 4650K| | 1504 (1)|
|* 7 | TABLE ACCESS FULL | DIM_PRODUCT_HIER | 206 | 3296 | | 37 (3)|
|* 8 | HASH JOIN | | 52460 | 5123K| | 1467 (1)|
| 9 | TABLE ACCESS FULL | DIM_PRODUCT_HIER | 3087 | 27783 | | 37 (3)|
|* 10 | HASH JOIN | | 52460 | 4661K| | 1430 (1)|
|* 11 | TABLE ACCESS FULL | SHIPPABLE_BACKLOG_FACT | 7718 | 414K| | 513 (1)|
| 12 | MERGE JOIN CARTESIAN | | 48941 | 1720K| | 915 (0)|
| 13 | INDEX FULL SCAN | SYS_C0060330 | 1827 | | | 7 (15)|
| 14 | BUFFER SORT | | 27 | 972 | | 913 (0)|
| 15 | TABLE ACCESS BY INDEX ROWID| CURCY_CONVERT_RATE | 27 | 972 | | 2 (50)|
|* 16 | INDEX RANGE SCAN | XPKCURRATE | 27 | | | 4 (25)|
------------------------------------------------------------------------------------------------------------

________________________

Here is the query
-----------------------------------------

SELECT 'BACKLOG' AS SUBJECT_AREA, 'CURRENT' AS TIME_RANGE
,GEO_ROLLUP.GEOGRAPHY_HIER_KEY
,PRODUCT_ROLLUP.PRODUCT_HIER_KEY
, backlog_FACT.DISTRIBUTION_CH_ID
, backlog_FACT.SALES_DISTRICT_ID
, SUM(NVL(backlog_FACT.GC_SCHEDULED_AMT,0) - NVL(backlog_FACT.GC_biilled_AMT,0)) AS billing_backlog_AMT
, SUM(NVL(backlog_FACT.GC_SCHEDULED_AMT,0)- NVL(backlog_FACT.GC_DELIVERED_AMT,0)) AS delivery_backlog_AMT
, SUM(NVL(backlog_FACT.GC_SCHEDULED_AMT,0) - NVL(backlog_FACT.GC_REV_REC_AMT,0)) AS rev_rec_backlog_AMT
, CURCY.VALID_FROM
FROM fact.shippable_backlog_FACT backlog_FACT
, DIM.DIM_PRODUCT_HIER PRODUCT
, DIM.DIM_GEOGRAPHY_HIER GEO
, DIM.DIM_DATE DT
, DIM.DIM_PRODUCT_HIER PRODUCT_ROLLUP
, DIM.DIM_GEOGRAPHY_HIER GEO_ROLLUP
, DIM.CURCY_CONVERT_RATE CURCY
WHERE
PRODUCT.PRODUCT_HIER_KEY = backlog_FACT.GEF_PRODUCT_HIER_KEY
AND GEO.GEOGRAPHY_HIER_KEY = backlog_FACT.GEF_SHIP_TO_GEO_HIER_KEY
AND ( backlog_FACT.DELIVERY_COMPLETE_DATE IS NULL
OR backlog_FACT.BILLING_COMPLETE_DATE IS NULL
OR backlog_FACT.REV_REC_COMPLETE_DATE IS NULL
)
AND PRODUCT.PRODUCT_TYPE = PRODUCT_ROLLUP.PRODUCT_TYPE
AND PRODUCT_ROLLUP.HIER_LEVEL_NUM = 4
AND PRODUCT_ROLLUP.CURRENT_RECORD_IND = 'Y'
AND GEO_ROLLUP.SUB_POLE = GEO.SUB_POLE
AND GEO_ROLLUP.HIER_LEVEL_NUM = 3
AND GEO_ROLLUP.CURRENT_RECORD_IND = 'Y'
AND CURCY.VALID_FROM <= BACKLOG_FACT.ORDER_LINE_CREATE_DATE
AND CURCY.VALID_TO > BACKLOG_FACT.ORDER_LINE_CREATE_DATE
AND CURCY.EXCHANGE_TYPE_ID = 'M'
AND CURCY.TO_CURRENCY_ID = 'USD'
AND CURCY.FROM_CURRENCY_ID = BACKLOG_FACT.DOCUMENT_CURRENCY_ID
GROUP BY
PRODUCT_ROLLUP.PRODUCT_HIER_KEY,
GEO_ROLLUP.GEOGRAPHY_HIER_KEY,
backlog_FACT.DISTRIBUTION_CH_ID,
backlog_FACT.SALES_DISTRICT_ID,
CURCY.VALID_FROM;


I analyzed all the tables involved in it.

can anybody give me suggestion in crating indexes or anything else?
Thanks
Veer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Oct 6 2012
Added on May 7 2009
5 comments
464 views