[#0ef000]
_Mac_ a écrit a écrit :
Tu pourrais balancer ton code, steuplé
|
Ben j'ai rien contre, mais ça m'etonnerai que ça aide bcp, etant donné que la requete ne peut être faite autrement ( pour multiple raison, dont la principale est qu'elle est créé par un ETL ( Genio si tu connais )). Mais, bon, la voici !
[SELECT TO_NUMBER(TO_CHAR(G_T2.DATE_ACTION,'YYYY') , DECODE (TO_NUMBER( TO_CHAR(G_T2.DATE_ACTION, 'MM') , 1 , 1 , 2 , 1 , 3 , 1 , 4 , 2 , 5 , 2 , 6 , 2 , 7 , 3 , 8 , 3 , 9 , 3 , 4 ) ,
G_T4.COD_RESEAU_THEORIQUE, G_T4.COD_RESEAU_REEL, G_T3.CIBLE_POSITIONNE, G_T2.COD_REGION, G_T2.COD_CAT_SECTEUR,
G_T2.COD_SECTEUR, G_T4.FLG_HOP_VILLE, G_T6.COD_SPE_DSA, G_T2.COD_ZONE, G_T1.IND_LIEU_EXO,
COUNT(DISTINCT G_T1.CODE_MÉDECIN_COMPLET) FROM INFOCLI.TBACM_DW_PROSPECTS G_T1 ,
INFOCLI.TBACM_ACTIONS G_T2 , INFOCLI.TBSMV_CIBLES G_T3 , INFOCLI.TBSMV_RESEAU G_T4 , INFOCLI.TBACM_CIBLES G_T5 ,
INFOCLI.TBSMV_SPECIALITE G_T6 WHERE G_T3.NUM_CIBLE = G_T5.NUM_CIBLE AND G_T3.MAT_SOCIETE = G_T5.MAT_SOCIETE
AND G_T3.VAL_CIBLE = G_T5.VAL_CIBLE AND G_T2.TYPNUMIN = G_T5.TYPNUMIN AND G_T4.COD_CAT_SECTEUR = G_T2.COD_CAT_SECTEUR
AND G_T4.NUM_SECTO = G_T2.NUM_SECTO AND G_T4.COD_RESEAU_REEL = G_T3.COD_RESEAU_REEL AND G_T6.COD_SPECIALITE = G_T1.COD_SPECIALITE
AND G_T1.CODE_MÉDECIN_COMPLET = G_T2.TYPNUMIN AND G_T4.FLG_TRAITER = 1 AND G_T2.TYP_ID = 10440 AND G_T1.FLG_ADR_PRINC = 'O'
AND G_T4.COD_RESEAU_REEL = :1
GROUP BY TO_NUMBER(TO_CHAR(G_T2.DATE_ACTION,'YYYY') ,
DECODE (TO_NUMBER( TO_CHAR(G_T2.DATE_ACTION, 'MM') , 1 , 1, 2 , 1 , 3 , 1 , 4 , 2 , 5 , 2 , 6 , 2 , 7 , 3 , 8 , 3 , 9 , 3 , 4 ) , G_T4.COD_RESEAU_THEORIQUE , G_T4.COD_RESEAU_REEL , G_T3.CIBLE_POSITIONNE , G_T2.COD_REGION , G_T2.COD_CAT_SECTEUR , G_T2.COD_SECTEUR , G_T4.FLG_HOP_VILLE
, G_T6.COD_SPE_DSA , G_T2.COD_ZONE , G_T1.IND_LIEU_EXO]
Evidement, c'est carement illisible, surtout quand on connait pas le contexte ...
Mais je peux t'assurer que tous les index sont bons, bien présent et utilisés ( je peux te fournir l'explain plan ).