Bonjour bonjour,

Petite demande qui va amener à deux questions, potentiellement bête, mais sûr laquelle je n'arrive pas à trouver de certitude.
Voila mon petit soucis :

Un script sql de 3 000 lignes avec une boucle de curseur principale qui appelle d'autres curseurs, fait tout plein d'opérations youpi tralala...
Dans cette boucle, après l'appel de 4-5 curseur, il y a une insertion dans une table.

Ceci amène à ma première question : Vaut-il mieux, dans le cas d'une loop sur des milliers de lignes, faire un insert de suite, ou écrire les lignes dans un fichier pour ensuite faire un sqlload dessus ? Je sais que le sql load est plus rapide que l'insert, mais après, c'est par rapport à l'écriture du fichier où je ne suis pas sûr que le gain de temps se fasse remarquer...


Dans ce script aussi, il y a pas mal de if sur des données du curseur amenant la boucle principal. Des if du style :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
If (moncurseur.data = 0) THEN moncurseur.data = 'CC' ELSE moncurseur.data = 'VV'
Je ne sais pas si c'est propre à moi, mais ca me défrise un peu, je serais potentiellement passé par des clause CASE ou DECODE de suite dans le select plutôt que par des if dans le curseur.

Ma deuxième question est donc : if vs case ? Quel serait le plus rapide (si bien sûr il y a un plus rapide)

Pour info : Le script est donc un fichier .sql appelé avec sqlplus sous linux

Merci d'avance

Bisous bisous