This query is taking over 6 minutes to run, and is doing a full table scan. The only indexes are SA_ID for both tables. Both tables have millions of records. Unfortunately I'm a programmer, not a DBA so I don't have privelages to use all the optimizing tools.. and I have to jump through some hoops to get indexes created. Is that the only solution in this case?
SELECT A.ACCT_ID, A.SA_TYPE_CD, B.SA_ID, SUM( B.CUR_AMT), A.SA_STATUS_FLG , TO_CHAR(A.START _DT,'YYYY-MM-DD')
FROM SA A, FT B
WHERE A.SA_ID = B.SA_ID
AND A.SA_TYPE_CD = 'E-WO'
AND A.BUSINESS_UNIT = 'COT'
AND A.SA_STATUS_FLG = '20'
AND A.START_DT > TO_DATE('2002-01-01','YYYY-MM-DD')
GROUP BY A.ACCT_ID, A.SA_TYPE_CD, B.SA_ID, A.SA_STATUS_FLG , TO_CHAR(A.START _DT,'YYYY-MM-DD')
HAVING SUM( B.CUR_AMT) < 0
SELECT A.ACCT_ID, A.SA_TYPE_CD, B.SA_ID, SUM( B.CUR_AMT), A.SA_STATUS_FLG , TO_CHAR(A.START _DT,'YYYY-MM-DD')
FROM SA A, FT B
WHERE A.SA_ID = B.SA_ID
AND A.SA_TYPE_CD = 'E-WO'
AND A.BUSINESS_UNIT = 'COT'
AND A.SA_STATUS_FLG = '20'
AND A.START_DT > TO_DATE('2002-01-01','YYYY-MM-DD')
GROUP BY A.ACCT_ID, A.SA_TYPE_CD, B.SA_ID, A.SA_STATUS_FLG , TO_CHAR(A.START _DT,'YYYY-MM-DD')
HAVING SUM( B.CUR_AMT) < 0
Comment