IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

Optimisation des curseurs


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 4
    Par défaut Optimisation des curseurs
    Bonjour tout le monde,
    SVP je suis sur un projet d'optimisation du code PLSQL et j'aimerais bien savoir s'il y a une règle à suivre pour optimiser un curseur.
    Merci de votre aide

  2. #2
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    L'optimisation est comme celle d'une requête normale.

    Par contre, j'avais lu (il y a quelques années, donc ce n'est peut être plus valable) qu'il valait mieux déclarer le curseur que de le mettre directement dans le FOR r IN ( ...)

    Mais moi, je code quasiment toujours dans le FOR r IN (select...), c'est plus simple pour débugger ou lire la procédure sans devoir remonter tout en haut voir la déclaration.

  3. #3
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    C’est toujours sympa avec les curseurs en PL/SQL, chacun à ses préférences et de plus la mythologie est pleine des faux bons conseilles. A une époque Oracle (7) disait qu’il était mieux d’utiliser un curseur à la place d’un Select ... Into parce que pour le Select ... Into il y a deux fetch à faire : un pour ramener la valeur et un autre pour tester l’exception TOO_MANY_ROWS. Si c’était seulement ça le souci …

    Le For … In est optimisé derrière la scène par Oracle à partir de la 10g pour utiliser array fetching. Oui, mais le curseur explicit donne encore bien plus de contrôle, et donc plus optimale, quand il est utilisé avec le bulk fetching.

    Mais, en fait ce qui plombe souvent les perfs sont (en supposant que la requête SQL est optimale) :
    • les curseurs qui ramènent des valeurs utilisées tout simplement pour alimenter des autres curseurs qui ramènent des valeurs... c'est-à-dire les jointure en PL/SQL
    • le traitement ligne par ligne à la place du traitement par ensemble ou lot

  4. #4
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 4
    Par défaut
    Merci pour vos suggestions...

Discussions similaires

  1. [Disques durs] Optimisation des partitions
    Par DarkOcean dans le forum Composants
    Réponses: 18
    Dernier message: 10/02/2005, 13h54
  2. Optimisation des tables
    Par le-roy_a dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 24/01/2005, 10h04
  3. optimisation des requêtes
    Par yech dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 21/09/2004, 19h03
  4. [Compilateur] Optimisation des conditions
    Par Pedro dans le forum Langage
    Réponses: 2
    Dernier message: 16/06/2004, 13h49
  5. Optimisation des requetes
    Par bifidus dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 06/10/2003, 11h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo