Oracle
 sql >> Base de données >  >> RDS >> Oracle

Définition d'une valeur pour LIMIT lors de l'utilisation de la collecte en masse

Utiliser un curseur implicite dans un curseur FOR LOOP. Cela simplifie le code et la valeur par défaut de 100 est presque toujours suffisante.

J'ai vu beaucoup de gens perdre beaucoup de temps à s'inquiéter à ce sujet. Si vous réfléchissez à pourquoi la collecte en masse améliore les performances, vous comprendrez pourquoi un grand nombre ne vous aidera pas.

La collecte en bloc améliore les performances en réduisant les changements de contexte entre SQL et PL/SQL. Imaginez le pire des cas, hautement improbable, où le changement de contexte utilise tout le temps d'exécution. Une limite de 2 élimine 50 % des changements de contexte; 10 élimine 90 %; 100 élimine 99 %, etc. Tracez-le et vous vous rendrez compte que cela ne vaut pas la peine de trouver la taille limite optimale :

Utilisez la valeur par défaut. Passez votre temps à vous soucier de choses plus importantes.