Oracle - Cycle de vie des curseurs

Dernière mise à jour le 3 novembre 2009 à 12:08 par marlalapocket
Publié par wjaouadi
La bonne compréhension du cycle de vie et du fonctionnement des curseurs, permet d’optimiser les applications exécutant des requêtes SQL.

Les étapes lors de l’exécution d’un curseur sont les suivantes :
  • Ouverture d’un curseur : une structure mémoire est allouée pour le curseur au niveau de la mémoire privée du processus serveur du côté serveur associée avec la session (UGA User Global Area). A noter qu’aucune requête SQL n’est encore associée au curseur.
  • Parcours du curseur : une requête SQL est associée au curseur. La représentation du parcours de la requête incluant son plan d’exécution, qui décrit comment le moteur SQL exécutera la requête SQL, est chargée dans la Shared Pool, plus précisément dans la library cache. La structure dans la UGA est mise à jour pour stocker un pointeur vers la zone associée au curseur dans la library cache.
  • Définition des variables de sortie : la requête SQL retourne des données, c’est pour cela que les variables qui les accueilleront doivent être définies. Cette définition est aussi nécessaire pour les requêtes Delete, Insert et Update qui utilisent la clause RETURNING.
  • Liaison des variables d’entrée : si la requête SQL utilise des variables liées, celles-ci doivent être fournies. Aucune vérification n’est effectuée lors du lien. Si des valeurs invalides sont transmises, une erreur d’exécution sera alors déclenchée.
  • Exécution du curseur : au niveau de cette étape, la requêtes SQL est exécutée. En fonction du moteur de base de données, la phase d’exécution réelle peut être différée à l’étape de fetch.
  • Fetch du curseur (récupération du contenu) : si la requête SQL retourne un résultat, c’est au niveau de cette étape qu’il est récupéré. En général c’est au niveau de cette étape que le traitement s’effectue.
  • Fermeture du curseur : les ressources associées au curseur au niveau de la UGA sont automatiquement libérées. Le curseur au niveau de la library cache n’est pas supprimé pour répondre à d’éventuelles futures utilisations.

Le schéma ci-dessous illustre le cycle de vie d’un curseur.
Meilleures réponses pour « Oracle Cycle de vie des curseurs » dans :
Cycle de vie d'un logiciel Voir Cycle de vie d'un logiciel Le « cycle de vie d'un logiciel » (en anglais software lifecycle), désigne toutes les étapes du développement d'un logiciel, de sa conception à sa disparition. L'objectif d'un tel découpage est de permettre de définir des...
Changer l'aspect du curseur en CSS VoirLa propriété cursor permet de changer l'aspect du curseur sur un élément d'une page web. Le client affichera automatiquement le curseur de son ordinateur qui correspond au type de curseur que vous aurez choisi. Exemples Liste des attributs...
Connexion à une base Oracle en php Voir1. Périmètre Cet article est un exemple de connexion à une base Oracle par le biais d'un script php. Cet article ne traite pas la configuration de votre serveur Oracle, et de votre client Oracle. Nous partons du principe que vous pouvez accéder à...
Linux - Oracle - Installation d'Oracle 11g sous Linux Ubuntu VoirPrésentation Téléchargement d’UBUNTU Téléchargement d’Oracle Configuration du serveur X Mise à jour des packages Installation des packages de pré-installation Mise à jour du shell Mise à jour de la configuration des utilisateurs...
PL/SQL - Introduction au langage PL/SQL VoirIntroduction au langage PL/SQL Le langage PL/SQL est un langage L4G (entendez par ce terme un langage de quatrième génération), fournissant une interface procédurale au SGBD Oracle. Le langage PL/SQL intègre parfaitement le langage SQL en lui...
Cycle de vie des servlets VoirLe cycle de vie d'une servlet Le cycle de vie d'une servlet est assuré par le conteneur de servlet. Ainsi afin d'être à même de fournir la requête à la servlet, récupérer la réponse ou bien tout simplement démarrer/arrêter la servlet, cette...
Cycle de vie d'un logiciel VoirCycle de vie d'un logiciel Le « cycle de vie d'un logiciel » (en anglais software lifecycle), désigne toutes les étapes du développement d'un logiciel, de sa conception à sa disparition. L'objectif d'un tel découpage est de permettre de définir des...
Collection CommentÇaMarche.net