Bonjour,

Me revoilà avec un nouveau problème existentiel autour du temps mis par mon script pour s'exécuter. Ci-dessous un bout de mon code un peu simplifié.

La table lue RDD_ASS fait environ 15000 lignes. Ma fonction de debug qui s'exécute dans une transaction autonome me permet de me rendre compte (non sans un certain effroi) qu'il faut plusieurs secondes par tour de boucle !!!!!

Des idées pour me sauver la vie ?

Merci, bon appétit parce que l'heure approche

Frédéric


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
		FOR vass IN (SELECT * FROM RDD_ASS WHERE NUMCMR = tabCmr(i) ) LOOP
 
			BEGIN
				SELECT I_ID_INDV INTO num FROM ASSU_COURANT@BDUDAC 
							WHERE I_CD_NIRNIP = vass.NIR 
							AND AV_ID_CMR = vass.NUMCMR;
				debug('étape 5 - 1 2 ', 'T');
			EXCEPTION
			WHEN TOO_MANY_ROWS THEN	
			-- 
			WHEN NO_DATA_FOUND THEN				--			
			END;
 
		END LOOP;