9i to 10g query performance
Hi Folks, the following query runs in 25 mins on a 9i database. (9.2.0.1.0)
On 10g it takes 19 hours.
When you run tuning advisor on 10g it says
'ORA-00979 not a GROUP BY expression'
It doesn't fall over though, it keeps running.
The query was created by someone ages ago through Business Objects.
Can anyone see anything glaringly obvious that 10g wouldn't like about the following but 9i is perfectly happy with?
Code:
SELECT
WO_BACKLOG_TREND.WOPRIORITY,
WO_BACKLOG_TREND.DATADATE,
SUM(WO_BACKLOG_TREND.REMHRS),
WO_BACKLOG_TREND.LOCATION,
NVL(WO_BACKLOG_TREND.CREWID,'BLAH'),
NVL(WO_BACKLOG_TREND.WORKTYPE,'BLAH'),
NVL(WO_BACKLOG_TREND.LEADCRAFT,'BLAH'),
NVL(WO_BACKLOG_TREND.SUPERVISOR,'BLAH'),
SUM(WO_BACKLOG_TREND.PLANHRS),
SUM(WO_BACKLOG_TREND.ACTHRS),
MTR_LOCN_ANC.LH2||' : '||MTR_LOCN_ANC.LD2,
MTR_LOCN_ANC.LH3,
MTR_LOCN_ANC.LH3||' : '||MTR_LOCN_ANC.LD3,
MTR_LOCN_ANC.LH4||' : '||MTR_LOCN_ANC.LD4,
MTR_LOCN_ANC.LH1,
MTR_LOCN_ANC.LH2,
MTR_LOCN_ANC.LH4,
MTR_LOCN_ANC.LH5,
MTR_LOCN_ANC.LH6
FROM
V_MTR_WO_BACKLOG_TREND WO_BACKLOG_TREND,
V_MTR_LOCN_ANC MTR_LOCN_ANC,
LOCATIONS LOCATIONS3
WHERE
( WO_BACKLOG_TREND.LOCATION=MTR_LOCN_ANC.LOCATION and WO_BACKLOG_TREND.SITEID=MTR_LOCN_ANC.SITEID )
AND ( LOCATIONS3.LOCATION=MTR_LOCN_ANC.LOCATION and LOCATIONS3.SITEID=MTR_LOCN_ANC.SITEID )
AND (
(WO_BACKLOG_TREND.WOPRIORITY IS NULL
OR WO_BACKLOG_TREND.WOPRIORITY IN (1,2,3,4))
AND (NVL(WO_BACKLOG_TREND.WORKTYPE,'BLAH') IS NULL
OR NVL(WO_BACKLOG_TREND.WORKTYPE,'BLAH') IN ('PM','CM','PMA'))
AND MTR_LOCN_ANC.LH1 = ('VENTURE')
AND MTR_LOCN_ANC.LH2 LIKE ('KW%')
AND LOCATIONS3.LO2 IS NOT NULL
)
GROUP BY
WO_BACKLOG_TREND.WOPRIORITY,
WO_BACKLOG_TREND.DATADATE,
WO_BACKLOG_TREND.LOCATION,
NVL(WO_BACKLOG_TREND.CREWID,'BLAH'),
NVL(WO_BACKLOG_TREND.WORKTYPE,'BLAH'),
NVL(WO_BACKLOG_TREND.LEADCRAFT,'BLAH'),
NVL(WO_BACKLOG_TREND.SUPERVISOR,'BLAH'),
MTR_LOCN_ANC.LH2||' : '||MTR_LOCN_ANC.LD2,
MTR_LOCN_ANC.LH3,
MTR_LOCN_ANC.LH3||' : '||MTR_LOCN_ANC.LD3,
MTR_LOCN_ANC.LH4||' : '||MTR_LOCN_ANC.LD4,
MTR_LOCN_ANC.LH1,
MTR_LOCN_ANC.LH2,
MTR_LOCN_ANC.LH4,
MTR_LOCN_ANC.LH5,
MTR_LOCN_ANC.LH6
/