Bonjour,


Je suis en train de reprendre un vieux code développé dans mon entreprise.
L'absence de commentaires ne facilite pas les choses, et je suis tombé sur des parties un peu curieuse, des genres de tautologies qui me laissent perplexes.

Aussi, j'aimerai avoir votre avis si vous pensez que ca peut influencer quelque part les perfs ou si c'est complètement inutile et que je peux donc m'en débarrasser.

Voici les deux cas que j'ai trouvés :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
DECODE(NVL(PP.PPRO_NO_FUP,' '),'1','Y','N')
Quelle est l'utilité dans ce cas du NVL ?

Morceau de code dans un select :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
(SELECT CASE WHEN MAX(PROC_GROSS_PREMIUM_100) > 0 THEN 'Y' ELSE 'N' END
      FROM AD_PROPOSAL_COVERS
      WHERE PROC_APV_PROP_REFERENCE = APVP_PROP_REFERENCE
        AND PROC_APV_VERSION_NUMBER = APVP_PROP_VERSION
        AND PROC_APVP_PLAN_NUMBER = APVP_PLAN_NUMBER
        AND PROC_TAR_CODE = PROC_TAR_CODE
        AND PROC_PBB_NUMBER IN (106,
                                107)) AS "LAWYER_EXP" ,
La condition AND PROC_TAR_CODE = PROC_TAR_CODE me laisse perplexe. J'imagine que c'est peut etre pour filtrer les valeurs nulles, mais dans ce cas, un where PROC_TAR_CODE is not null ne serait il pas plus efficace ?


Est ce que c'est moi qui trouves ces parties un peu bizarres, ou est ce que de votre point de vue aussi elles le sont ? Y aurait il une raison d'un point de vue perf d'avoir fait ca ?


Merci d'avance pour vos réponses.

Steven