i am not strong in sql and oracle and i need help to optimize this view in order to get the result as quickly as possible. Currently, it takes 7 mins when i run its select clause.
this is the view :
CREATE OR REPLACE FORCE VIEW "DMUSEWADM"."SOUS_FAMILLE_WITH_CATALOG_INFO"
("IDSOUSFAMILLE", "LIBELLESOUSFAMILLE", "DATEMODIFSF", "IDFAMILLE",
"CHEMIN", "GNP", "TYPEFICHIER", "ESTPLANIFIABLE", "DATEPLANIFIABLE",
"AUTEURMODIFSF", "NATURESOUSFAMILLE", "LIBELLEMETIERSOUSFAMILLE",
"CONTACTPRODUCTEUR", "CATALOGVISIBILITY", "PREVISIONALDATE",
"DATEDERNIERCHARGEMENT", "DATEPROCHAINCHARGEMENT", "LIBELLEFAMILLE") AS
SELECT SF."IDSOUSFAMILLE",SF."LIBELLESOUSFAMILLE",SF."DATEMODIFSF",SF."IDFAMILLE",SF."CHEMIN",SF."GNP", SF."TYPEFICHIER",SF."ESTPLANIFIABLE",SF."DATEPLANIFIABLE",SF."AUTEURMODIFSF",SF."NATURESOUSFAMILLE",SF."LIBELLEMETIERSOUSFAMILLE",SF."CONTACTPRODUCTEUR",SF."CATALOGVISIBILITY",SF."PREVISIONALDATE",
( SELECT datefinchrgt from chargement where numchrgt = ( select max(numchrgt) from CHARGEMENT where nomhbase = ( select nomhbase from hbase where nomes = SF.IDSOUSFAMILLE ) and etatchrgt = 'OK')
) as DATEDERNIERCHARGEMENT,
( SELECT (
CASE WHEN DATECHARGEMENT IS NOT NULL THEN
(
CASE WHEN DATENSF IS NOT NULL THEN
GREATEST(DATECHARGEMENT, DATENSF)
ELSE
DATECHARGEMENT
END
)
ELSE
DATENSF
END
)
FROM
(
SELECT
subsf.idsousfamille as subid,
(SELECT max(c.dateauplustot) FROM CHARGEMENT c, HBASE h WHERE c.typechrgt = 'HBASEESDATA' and c.etatchrgt = 'PREVU' and c.nomhbase = h.nomhbase and h.nomes = subsf.idsousfamille) as DATECHARGEMENT,
(SELECT max(nsf.dateauplustot) FROM NAS_SOUSFAMILLE nsf WHERE nsf.etatchrgt = 'PREVU' AND nsf.sousfamille = subsf.idsousfamille) as DATENSF
FROM sousfamille subsf
)
WHERE subid = SF.idsousfamille
) as DATEPROCHAINCHARGEMENT,
(
SELECT f.libelleFamille from famille f where sf.idfamille = f.idfamille
) as LIBELLEFAMILLE
FROM SOUSFAMILLE SF;
How can i optimise it please in order to reduse the execution time?
i would appreciate any help :)
here is the explain plan of the query