Bonjours,
je suis nouveau dans les procedures stockées et j'ais volus creer une procedure simple de mis a jours de quelques champs dans une table.
le probleme que le nombre d'enregistrement de cursor n'est pas assez grand dans l'ordre de 4168 enregistrements mais le temps d'execution de procedure est tres longs plus que 2heures voici le code et svp dit mois ou est le probleme. d'autres procedures fonctionnent tres bien pourtant plus compliques et contennent plus d'enregistrements a manipulées.
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 BEGIN DECLARE variables typvariables; DECLARE MAGDt CURSOR FOR SELECT distinct feld2,feld14,feld33 from magd where not(feld14 is null) and feld33='ks'; DECLARE MAGDk CURSOR FOR SELECT distinct feld2,feld14,feld33 from magd where not(feld14 is null) and (feld33='ltg' or feld33='ckont' or feld33='edich'); DECLARE COMPT CURSOR FOR SELECT COUNT(firmnr) from test; OPEN orderrs ;OPEN MAGDk; UPDATE `importdetail` SET `KontBez1`=NULL ; oopmagd:LOOP FETCH MAGDk into teil,des,typ; if typ='CKONT' then UPDATE ImportDetail set KontBez1=des where Kont1=teil; UPDATE ImportDetail set KontBez2=des where Kont2=teil; end if ; if typ='ltg' then UPDATE ImportDetail set BezeichLeitg=des where TeilNrLeitg=teil; end if ; if typ='edich' then UPDATE ImportDetail set BezZusatz1=des where Zusatz1=teil; UPDATE ImportDetail set BezZusatz1=des where Zusatz1=teil; end if; END LOOP loopmagd;CLOSE MAGDk; END