In case you have your own slow SQL query, you can optimize it automatically here.
For the query above, the following recommendations will be helpful as part of the SQL tuning process.
You'll find 3 sections below:
SELECT
s2_area_code,
s_due_date,
rate
FROM
((SELECT
s2.Area_CODE AS s2_area_code,
s.due_DATE AS s_due_date,
RATE AS rate,
s.EFF_DATE AS s_eff_date
FROM
SCHED S
LEFT JOIN
(
SELECT
NVL(MIN(s1.due_DATE),
to_date('31-DEC-2999',
'DD-MM-YYYY')) AS min_date,
s1.AREA_CODE AS a_code
FROM
SCHED s1
WHERE
s1.COMPANY_CODE = 'c'
GROUP BY
s1.AREA_code
ORDER BY
NULL
) s2
ON s2.A_CODE = s.area_code
WHERE
(
s.area_code = 11001
AND (
(
s.COMP_CODE = 'b'
AND s.due_DATE < s2.min_date
)
)
)
ORDER BY
s_eff_date ASC,
s.due_DATE ASC)
UNION
DISTINCT (SELECT
s2.Area_CODE AS s2_area_code,
s.due_DATE AS s_due_date,
RATE AS rate,
s.EFF_DATE AS s_eff_date
FROM
SCHED S
LEFT JOIN
(SELECT
NVL(MIN(s1.due_DATE),
to_date('31-DEC-2999',
'DD-MM-YYYY')) AS min_date,
s1.AREA_CODE AS a_code
FROM
SCHED s1
WHERE
s1.COMPANY_CODE = 'c'
GROUP BY
s1.AREA_code
ORDER BY
NULL) s2
ON s2.A_CODE = s.area_code
WHERE
(s.area_code = 11001
AND (s.COMP_CODE = 'a'))
ORDER BY
s_eff_date ASC,
s.due_DATE ASC)
) AS union1
ORDER BY
union1.s_eff_date ASC,
union1.s_due_date ASC