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 :

Curseurs imbriqués


Sujet :

PL/SQL Oracle

  1. #21
    Expert éminent sénior 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
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par dgi77 Voir le message
    ...Et bien dans ces cas-là, l'utilisation des REF CURSOR permet un gain de performances assez énorme par rapport à l'utilisation classique des curseurs (ouvre, ferme, ouvre, ferme, ...).
    ...

    Bref, je te compare curseurs indépendants imbriqués avec REF CURSOR, alors que toi tu compares curseurs avec ensembliste...
    Un ref cursor est en fait une variable curseur. Il n'y pas de différence fondamentale entre un curseur et une variable curseur!

    A cursor is a pointer to a private SQL area that stores information about processing a specific SQL statement or PL/SQL SELECT INTO statement.
    A cursor variable is like an explicit cursor, except that:
    ■ It is not limited to one query.
    You can open a cursor variable for a query, process the result set, and then use the
    cursor variable for another query.
    ■ It can be a subprogram parameter.
    You can use cursor variables to pass query result sets between subprograms.
    ■ It can be a host variable.
    You can use cursor variables to pass query result sets between PL/SQL stored
    subprograms and their clients.
    Bref, je vous invite à nous démontrer le "gain de performance assez énorme ..."

  2. #22
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 500
    Points : 639
    Points
    639
    Par défaut
    J'ai constaté ce gain que je qualifie d'énorme (rapport de 1 à 15) sur mes traitements, mais justement je ne sais pas comment Oracle gère le truc, donc je ne peux pas l'expliquer. J'ai d'ailleurs demandé dans cette discussion (le 02/08/2010) si des DBA pouvaient expliquer le fonctionnement car ça m'intéresse. De ma part, c'est une simple constation, simple mais sans appel.

    Le gain par rapport à des curseurs classiques commence à être intéressant dès lors qu'il y a imbrication de curseurs. Effectivement, je ne suis pas sûr que remplacer un curseur isolé par un REF CURSOR permette d'améliorer les performances.
    Dans mon cas, j'avais 4 curseurs imbriqués, celui de plus bas niveau était ouvert et fermé environ 80 000 fois par traitements. Quand j'ai créé un gros curseur manipulant 4 REF CURSOR, j'ai réduit le temps de traitement par 15.
    Vous avez donné vous-même un exemple de code représentatif dans cette discussion (le 03/08/2010).
    Des chercheurs qui cherchent, on en trouve, mais des chercheurs qui trouvent, on en cherche !

  3. #23
    Membre du Club
    Inscrit en
    Août 2002
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 36
    Points : 41
    Points
    41
    Par défaut
    Bonjour à tous,
    Curseur, REF CURSOR, SYS_REFCURSOR, l'on a souvent de la peine à savoir quand utiliser le quel. Voici un link qui explique brièvement la diférence entre curseur et re cursor :

    http://asktom.oracle.com/pls/asktom/f?p=100:11:0:::11_QUESTION_ID:14188501024541

    Cala

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [SQL 2005] Curseurs imbriqués
    Par Invité dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/09/2008, 11h24
  2. Problème de curseurs imbriqués
    Par groupe51 dans le forum SQL
    Réponses: 7
    Dernier message: 15/05/2008, 14h21
  3. Réponses: 8
    Dernier message: 31/10/2007, 13h15
  4. 2 Curseurs imbriqués
    Par nox75 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 03/09/2007, 16h28
  5. Possibilité de faire des curseurs imbriqués?
    Par jeje.r dans le forum Sybase
    Réponses: 3
    Dernier message: 22/04/2007, 01h09

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