Bonjour,
J'aimerais savoir s'il y a un moyen de ne pas plomber les performances lorsque qu'on fait un update où certaines clauses du WHERE sont à NULL.
Je m'explique :
Ce premier est update est très rapide mais si une des colonnes est a null (et donc sa valeur recc* également) la ligne n'est pas mise à jour :
Pour info, Les valeurs recc* sont retournées par un curseur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 update TMEEVP set numseq = recc0 where business_unit = recc1 and datsitu = recc2 and prdet=recc3 and prifi=recc4 and foreign_currency = recc5 and prcsv=recc6 and prmat=recc7 and prdvn=recc8 and prflx = recc9 and prsem= recc10 and paemt = recc11;
Alors que celui met à jour l'exhaustivité des lignes mais avec des performances très dégradées (business_unit et datsitu ne peuvent etre null):
Connaissez-vous une solution à ce problème ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 update TMEEVP set numseq = recc0 where business_unit = recc1 and datsitu = recc2 and nvl(prdet, 'A')=nvl(recc3, 'A') and nvl(prifi, 'A')=nvl(recc4, 'A') and nvl(foreign_currency, 'A') = nvl(recc5, 'A') and nvl(prcsv, 'A')=nvl(recc6, 'A') and nvl(prmat, 'A')=nvl(recc7, 'A') and nvl(prdvn, 'A')=nvl(recc8, 'A') and nvl(prflx, 'A') = nvl(recc9, 'A') and nvl(prsem, 'A')= nvl(recc10, 'A') and nvl(paemt, 'A') = nvl(recc11, 'A');
D'avance merci
Partager