Introduction à la collecte groupée PL/SQL
Une requête bien structurée, rédigée aujourd'hui, pourrait vous éviter des événements catastrophiques à l'avenir. La performance des requêtes est quelque chose que nous recherchons tous, mais très peu la trouvent vraiment. Apprendre de petits concepts pourrait vous aider à acquérir de l'expérience qui pourrait conduire à une meilleure compétence en rédaction de requêtes. Aujourd'hui dans ce blog vous allez apprendre un de ces petits concepts qu'est le "Bulk Collect ”.
La collecte en masse consiste à réduire les changements de contexte et améliorer les performances de la requête. Ainsi, afin de comprendre ce qu'est la collecte en masse, nous devons d'abord apprendre ce qu'est le changement de contexte ?
Qu'est-ce que le changement de contexte ?
Chaque fois que vous écrivez un bloc PL/SQL ou prononcez un programme PL/SQL et que vous l'exécutez, le moteur d'exécution PL/SQL commence à le traiter ligne par ligne. Ce moteur traite toutes les instructions PL/SQL par lui-même, mais il transmet toutes les instructions SQL que vous avez codées dans ce bloc PL/SQL au moteur d'exécution SQL. Ces instructions SQL seront ensuite traitées séparément par le moteur SQL. Une fois qu'il a fini de les traiter, le moteur SQL renvoie le résultat au moteur PL/SQL. Pour qu'un résultat combiné puisse être produit par ce dernier. Ce va-et-vient de contrôle est appelé changement de contexte.
Comment le changement de contexte affecte-t-il les performances des requêtes ?
Le changement de contexte a un impact direct sur les performances de la requête. Plus le saut de commandes est élevé, plus la surcharge sera importante, ce qui dégradera les performances. Cela signifie que moins le changement de contexte sera meilleur, meilleures seront les performances de la requête.
Maintenant, vous devez vous dire « On ne peut pas faire quelque chose à ce sujet ? » Pouvons-nous réduire ces transitions de contrôle ? Y a-t-il de toute façon à l'aide duquel nous pouvons réduire les changements de contexte ? La réponse à toutes ces questions est oui, nous avons une option qui peut nous aider. Cette option est la clause Bulk Collect .
Qu'est-ce que la clause de collecte groupée ?
La clause de collecte en bloc comprime plusieurs commutateurs en un seul commutateur de contexte et augmente l'efficacité et les performances d'un programme PL/SQL.
La clause de collecte en masse réduit les sauts de contrôle multiples en collectant tous les appels d'instructions SQL du programme PL/SQL et en les envoyant au moteur SQL en une seule fois et vice versa.
Où pouvons-nous utiliser la clause Bulk Collect ?
La clause de collecte en masse peut être utilisée avec les clauses SELECT-INTO, FETCH-INTO et RETURN-INTO.
Avec l'aide de Bulk Collect Statement, nous pouvons SÉLECTIONNER, INSÉRER, METTRE À JOUR ou SUPPRIMER de grands ensembles de données à partir d'objets de base de données tels que des tables ou des vues.
Qu'est-ce que le traitement de données en masse ?
Le processus de récupération de lots de données du moteur d'exécution PL/SQL vers le moteur SQL et vice versa est appelé traitement de données en masse.
Combien de déclarations de traitement de données groupées avons-nous ?
Nous avons une clause de traitement de données en masse qui est Bulk Collect et une instruction de traitement de données en masse qui est FORALL dans Oracle Database.
J'ai entendu dire que la clause de collecte en bloc utilise à la fois des curseurs implicites et explicites ?
Oui, vous avez bien entendu. Nous pouvons utiliser la clause de collecte en bloc soit dans une instruction SQL, soit avec l'instruction FETCH. Lorsque nous utilisons la clause de collecte en masse avec l'instruction SQL, c'est-à-dire SELECT INTO, elle utilise un curseur implicite. Alors que si nous utilisons la clause de collecte en masse avec l'instruction FETCH, elle utilise un curseur explicite.
Il s'agissait d'une introduction rapide à la première clause de traitement de données en masse PL/SQL qui est BULK COLLECT. Nous en apprendrons davantage sur la deuxième déclaration de traitement de données en masse une fois que nous en aurons terminé avec la première. En attendant, assurez-vous de vous abonner à notre chaîne YouTube, car dans le prochain didacticiel, nous apprendrons comment améliorer l'efficacité d'une instruction SQL à l'aide d'une clause Bulk Collect.
Merci et bonne journée !