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:
ALTER TABLE `TAB1` ADD INDEX `tab1_idx_col4_col6` (`COL4`,`COL6`);
ALTER TABLE `TAB2` ADD INDEX `tab2_idx_col4_col5_col6` (`COL4`,`COL5`,`COL6`);
ALTER TABLE `TAB3` ADD INDEX `tab3_idx_col4_col5_col5a_col6` (`COL4`,`COL5`,`COL5A`,`COL6`);
ALTER TABLE `TAB4` ADD INDEX `tab4_idx_col6_pdr` (`COL6`,`PDR`);
SELECT
NVL(UPPER(T.COL1),
'N.D.') COL1,
V.SECO,
'N' CL_MED,
V.DEST_USO,
(CASE
WHEN V.COL2 IS NULL
AND V.SECO IN ('B090',
'B100') THEN ''
WHEN V.COL2 LIKE 'L-DEF%'
OR V.COL2 LIKE 'L-FUI%'
AND V.SECO IN ('B090',
'B100') THEN 'FUI/DEF'
WHEN V.COL2 IS NULL
AND V.SECO = 'B080'
AND V.COL3 LIKE 'DEF%'
OR V.COL3 LIKE 'FUI%' THEN 'FUI/DEF'
ELSE '' END) FLAG_DEF_FUI
FROM
TAB1 V
JOIN
TAB2 C
ON (
V.COL4 = C.COL4
AND V.COL5 = C.COL5
AND V.COL6 = C.COL6
)
JOIN
TAB3 T
ON (
V.COL4 = T.COL4
AND V.COL5 = T.COL5
AND V.COL5A = T.COL5A
AND T.COL6 = V.COL6
)
WHERE
V.COL4 = :COL4
AND V.COL6 = :COL6
AND NOT EXISTS (
SELECT
1
FROM
TAB4 gcm
WHERE
(
gcm.COL6 = :COL6
)
AND (
V.COL5 = gcm.PDR
)
)
GROUP BY
(UPPER(T.COL1),
V.SECO,
V.DEST_USO,
FLAG_DEF_FUI)
ORDER BY
NULL