NOT_EXISTS Performans Problemi

Merhaba,

NOT_EXISTS bazı durumlarda performans problemine neden olabilir.

Bu tarz bir durumda NOT_EXISTS ile yapılması istenen mantığın, aynı şekilde JOIN ile yazılması gerekir.


SELECT LAST_DAY (m.kst_trh)
FROM burhan.mvdt m
WHERE m.vdl_vds_acklm = 'Vadeli'
AND EXISTS (
SELECT 1 FROM burhan.firma m2
WHERE 1 = 1
AND m.kst_trh = m2.kst_trh
AND m.clsm_skl = m2.clsm_skl
AND m.firm_ortk_clsm_skl IN (2, 4, 5)
)
GROUP BY LAST_DAY (m.kst_trh);


Aşağıdaki gibi yazılarak NOT_EXISTS den kurtarılabilir.


SELECT LAST_DAY (m.kst_trh)
FROM burhan.mvdt m,
burhan.firma m2
WHERE m.vdl_vds_acklm = 'Vadeli'
AND m.kst_trh = m2.kst_trh(+)-->left gidilir.
AND m.clsm_skl = m2.clsm_skl(+)-->left gidilir.
AND NOT ( m2.kst_trh is not null and m2.clsm_skl is not null
AND m.firm_ortk_clsm_skl IN (2, 4, 5)
)
GROUP BY LAST_DAY (m.kst_trh);

Yorum Gönder