I am posting the sql generated from three simple reports. The first report would contain just the first metric and an attribute from two unrelated but frequently used dimensions (like customer type and Store State). The second report would contain the same two attributes but
with the second metric instead of the first. The last report will contain both metrics with any addition metric needed to generate the problem sql.
1st report :
Tables Accessed:
LU_TM_DAY
MOB_SAMEDAY_DATA
MOB_LOC_DEF
LU_MERCH_LBR_DEPT
LU_GEOG_LOC
SQL Statements:
Pass0 - Duration: 0:00:04.53
select a13.LBR_DEPT_ID LBR_DEPT_ID,
a13.LBR_DEPT_NM LBR_DEPT_NM,
a11.LOC_ID LOC_ID,
a15.LOC_NM LOC_NM,
a12.CALNDR_DT CALNDR_DT,
count(a11.SCENARIO_ID) Same_Day_4_Avg
from U29PRPA.MOB_SAMEDAY_DATA a11,
LU_TM_DAY a12,
LU_MERCH_LBR_DEPT a13,
U29PRPA.MOB_LOC_DEF a14,
PROD.LU_GEOG_LOC a15
where a11.LOC_ID = a14.LOC_ID and
a11.LOC_ID = a15.LOC_ID
and (a14.RCD_START_DT <= (sysdate)
and NVL(a14.RCD_END_DT , SYSDATE+1) >= SYSDATE
and a11.SCENARIO_ID between (Select MAX(SCENARIO_ID) -3 from U29PRPA.MOB_SAMEDAY_DATA) and (Select MAX(SCENARIO_ID) from U29PRPA.MOB_SAMEDAY_DATA)
and a14.MOB_STATUS in ('STANDARD')
and a12.CALNDR_DT = (select MAX(CALNDR_DT) from PROD.LU_TM_DAY where FISC_MTH_ID = (select FISC_MTH_ID from PROD.LU_TM_DAY where calndr_dt = trunc(sysdate-30))))
group by a13.LBR_DEPT_ID,
a13.LBR_DEPT_NM,
a11.LOC_ID,
a15.LOC_NM,
a12.CALNDR_DT
2nd report:
Tables Accessed:
BPS_FIN_LOC_SKU_DT
MOB_LOC_DEF
LU_MERCH_LBR_DEPT
LU_GEOG_LOC
SQL Statements:
Pass0 - Duration: 0:02:07.61
select a11.LBR_DEPT_ID LBR_DEPT_ID,
a13.LBR_DEPT_NM LBR_DEPT_NM,
a11.LOC_ID LOC_ID,
a14.LOC_NM LOC_NM,
a11.CALNDR_DT CALNDR_DT,
sum(a11.UNIT) WJXBFS1
from BPS_FIN_LOC_SKU_DT a11,
U29PRPA.MOB_LOC_DEF a12,
LU_MERCH_LBR_DEPT a13,
PROD.LU_GEOG_LOC a14
where a11.LOC_ID = a12.LOC_ID and
a11.LBR_DEPT_ID = a13.LBR_DEPT_ID and
a11.LOC_ID = a14.LOC_ID
and (a12.MOB_STATUS in ('STANDARD')
and a11.CALNDR_DT = To_Date('2004-01-27 00:00:00', 'YYYY-MM-DD HH24:MI:SS')
and a11.CLASS_SUBCLASS_ID in (110012)
and (a11.SKU_ID NOT IN(SELECT Z.SKU_ID FROM U29PRPA.MOB_SKU_DEF Z WHERE Z.SKU_TYP = 'PRODUCT' AND Z.Include_Exclude = 'E' AND Z.Category = 'AMPS' AND Z.RCD_START_DT <= (SYSDATE) AND NVL(Z.RCD_END_DT,SYSDATE+1) > SYSDATE)
or a11.SKU_ID IN(SELECT S.Sku_ID
FROM U29PRPA.MOB_SKU_DEF S WHERE S.SKU_TYP = 'PRODUCT'AND S.Include_Exclude = 'I'
AND S.Category = 'AMPS' AND S.RCD_START_DT <= (SYSDATE)AND NVL(S.RCD_END_DT,SYSDATE+1) > SYSDATE)))
group by a11.LBR_DEPT_ID,
a13.LBR_DEPT_NM,
a11.LOC_ID,
a14.LOC_NM,
a11.CALNDR_DT
3rd report
Tables Accessed:
BPS_FIN_LOC_SKU_DT
LU_TM_DAY
MOB_SAMEDAY_DATA
MOB_LOC_DEF
LU_MERCH_LBR_DEPT
LU_GEOG_LOC
SQL Statements:
Pass0 - Duration: 0:01:57.48
create table ZZT4S0205KEMD000 nologging as
select a11.LOC_ID LOC_ID,
a11.LBR_DEPT_ID LBR_DEPT_ID,
a11.CALNDR_DT CALNDR_DT,
sum(a11.UNIT) WJXBFS1
from BPS_FIN_LOC_SKU_DT a11,
U29PRPA.MOB_LOC_DEF a12
where a11.LOC_ID = a12.LOC_ID
and (a12.MOB_STATUS in ('STANDARD')
and a11.CALNDR_DT = To_Date('2004-01-27 00:00:00', 'YYYY-MM-DD HH24:MI:SS')
and a11.CLASS_SUBCLASS_ID in (110012)
and (a11.SKU_ID NOT IN(SELECT Z.SKU_ID FROM U29PRPA.MOB_SKU_DEF Z WHERE Z.SKU_TYP = 'PRODUCT' AND Z.Include_Exclude = 'E' AND Z.Category = 'AMPS' AND Z.RCD_START_DT <= (SYSDATE) AND NVL(Z.RCD_END_DT,SYSDATE+1) > SYSDATE)
or a11.SKU_ID IN(SELECT S.Sku_ID
FROM U29PRPA.MOB_SKU_DEF S WHERE S.SKU_TYP = 'PRODUCT'AND S.Include_Exclude = 'I'
AND S.Category = 'AMPS' AND S.RCD_START_DT <= (SYSDATE)AND NVL(S.RCD_END_DT,SYSDATE+1) > SYSDATE)))
group by a11.LOC_ID,
a11.LBR_DEPT_ID,
a11.CALNDR_DT
Pass1 - Duration: 0:00:05.08
create table ZZT4S0205KEMD001 nologging as
select a11.LOC_ID LOC_ID,
a13.LBR_DEPT_ID LBR_DEPT_ID,
a12.CALNDR_DT CALNDR_DT,
count(a11.SCENARIO_ID) Same_Day_4_Avg
from U29PRPA.MOB_SAMEDAY_DATA a11,
LU_TM_DAY a12,
LU_MERCH_LBR_DEPT a13,
U29PRPA.MOB_LOC_DEF a14
where a11.LOC_ID = a14.LOC_ID
and (a14.RCD_START_DT <= (sysdate)
and NVL(a14.RCD_END_DT , SYSDATE+1) >= SYSDATE
and a11.SCENARIO_ID between (Select MAX(SCENARIO_ID) -3 from U29PRPA.MOB_SAMEDAY_DATA) and (Select MAX(SCENARIO_ID) from U29PRPA.MOB_SAMEDAY_DATA)
and a14.MOB_STATUS in ('STANDARD')
and a12.CALNDR_DT = (select MAX(CALNDR_DT) from PROD.LU_TM_DAY where FISC_MTH_ID = (select FISC_MTH_ID from PROD.LU_TM_DAY where calndr_dt = trunc(sysdate-30))))
group by a11.LOC_ID,
a13.LBR_DEPT_ID,
a12.CALNDR_DT
Pass2 - Duration: 0:00:00.30
create table ZZT4S0205KEOJ002 nologging as
select pa1.LOC_ID LOC_ID,
pa1.LBR_DEPT_ID LBR_DEPT_ID,
pa1.CALNDR_DT CALNDR_DT
from ZZT4S0205KEMD000 pa1
Pass3 - Duration: 0:00:00.82
insert into ZZT4S0205KEOJ002
select pa2.LOC_ID LOC_ID,
pa2.LBR_DEPT_ID LBR_DEPT_ID,
pa2.CALNDR_DT CALNDR_DT
from ZZT4S0205KEMD001 pa2
Pass4 - Duration: 0:00:01.12
create table ZZT4S0205KEOD003 nologging as
select distinct pa3.LOC_ID LOC_ID,
pa3.LBR_DEPT_ID LBR_DEPT_ID,
pa3.CALNDR_DT CALNDR_DT
from ZZT4S0205KEOJ002 pa3
Pass5 - Duration: 0:00:02.49
select distinct pa4.LBR_DEPT_ID LBR_DEPT_ID,
a11.LBR_DEPT_NM LBR_DEPT_NM,
pa4.LOC_ID LOC_ID,
a12.LOC_NM LOC_NM,
pa4.CALNDR_DT CALNDR_DT,
pa1.WJXBFS1 WJXBFS1,
pa2.Same_Day_4_Avg Same_Day_4_Avg
from ZZT4S0205KEOD003 pa4,
ZZT4S0205KEMD000 pa1,
ZZT4S0205KEMD001 pa2,
LU_MERCH_LBR_DEPT a11,
PROD.LU_GEOG_LOC a12
where pa4.CALNDR_DT = pa1.CALNDR_DT (+) and
pa4.LBR_DEPT_ID = pa1.LBR_DEPT_ID (+) and
pa4.LOC_ID = pa1.LOC_ID (+) and
pa4.CALNDR_DT = pa2.CALNDR_DT (+) and
pa4.LBR_DEPT_ID = pa2.LBR_DEPT_ID (+) and
pa4.LOC_ID = pa2.LOC_ID (+) and
pa4.LBR_DEPT_ID = a11.LBR_DEPT_ID and
pa4.LOC_ID = a12.LOC_ID
Pass6 - Duration: 0:00:01.01
drop table ZZT4S0205KEMD000
Pass7 - Duration: 0:00:00.37
drop table ZZT4S0205KEMD001
Pass8 - Duration: 0:00:00.30
drop table ZZT4S0205KEOJ002
Pass9 - Duration: 0:00:00.20
drop table ZZT4S0205KEOD003
i would appreciate any clues, help .thanks
su