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 :
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part If (moncurseur.data = 0) THEN moncurseur.data = 'CC' ELSE moncurseur.data = 'VV'
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
Partager