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

Oracle Discussion :

[Help] bind variable et parsing


Sujet :

Oracle

  1. #1
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mars 2005
    Messages : 95
    Points : 88
    Points
    88
    Par défaut [Help] bind variable et parsing
    bonjour,
    je trace les requêtes qui sont reparsées presque systèmatiquement.
    Je ne comprends pas car parmis celles-ci je vois des requêtes qui utilisent les binds variables, hors les binds variables sont sensés éviter le reparsing.

    c'est une base 8.1.6 sur sun.

    voici un exemple de requête.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT WL0.ACCOUNT_NUMBER, WL0.AGREEMENT_NUMBER_1, WL0.AGREEMENT_NUMBER_2, WL0.COUNTRY, WL0.CREATE_TIMESTAMP, WL0.CREATORS_NAME, WL0.CUSTOM_USE_1, WL0.CUSTOM_USE_2, WL0.CUSTOM_USE_3, WL0.EMAIL, WL0.EXIT_DATE, WL0.FACSIMILE_TELEPHON, WL0.FCE_CARD, WL0.IATA, WL0.ID, WL0.LOCA, WL0.L, WL0.MODIFIERS_NAME, WL0.MODIFY_TIMESTAMP, WL0.OU, WL0.NOE_NUMBER, WL0.OID, WL0.ORGANIZATION_TYPE, WL0.PARENT_ID, WL0.PASSENGER_TYPE, WL0.PAYMENT_TYPE, WL0.PCC_NUMBER, WL0.PORTAL_ID, WL0.POSTAL_CODE, WL0.RIVA_QUEUE_NUMBER, WL0.SATURNE_BUSINESS_RBD, WL0.SATURNE_CODE, WL0.SATURNE_ECONOMIC_RBD, WL0.SATURNE_FIRST_RBD, WL0.SATURNE_RBD, WL0.SIRET, WL0.STATUS, WL0.STREET, WL0.TELEPHONE_NUMBER, WL0.TEST_ORGANIZATION, WL0.TKTOID, WL0.TOUR_OP_ID  FROM ORGANIZATION WL0 WHERE ((WL0.PORTAL_ID = :1) AND (WL0.OU = :2))
    EXECUTIONS: 4533
    FIRST_LOAD_TIME: 2005-08-04/09:26:08
    PARSES 3666
    DISK_READS 750772
    BUFFER_GETS 1800249

    Avez-vous des infos ou idées sur la raison de ces reparsing

    voici le requete utilisée pour remonter les parses
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT sql_text, parse_calls, executions,users_executing, FIRST_LOAD_TIME
    FROM v$sqlarea
    WHERE parse_calls > 500
    AND executions < 2*parse_calls
    order by executions desc;
    [Balises ajoutées par Orafrance]
    DBA SQLServer, Oracle, Mysql, DB2, Postgresql

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Bonjour et bienvenue sur le forum Oracle ,
    Avant tout et pour améliorer la visibilité du code merci d'utiliser les balises Codes .

    Enfin ,il faut dire que toutes les requêtes sont parsés , car cela fait partie du processus d'une instruction , aprés il faut savoir si c'est du soft parse
    Oracle s’aperçoit qu’une requête similaire existe déjà dans la library cache et il applique le parse précèdent
    ou un hard parse :
    Cette étape convertit l’instruction SQL en plan d’exécution .Elle vérifie également que l’utilisateur bénéficie bel et bien des autorisations appropriées et que les tables , colonnes et autres objets de référence existent .Il a également une vérification syntaxique
    Donc un parse est inévitable , à mon avis tu devrais plutôt chercher les hard parses en tracant ta requête deux fois de suite

    Pour précision , il y a un nouveau parse lorsque la requête est invalidé : création d'index , nouvelle stat , pas de bind variable ....

    Jaouad

Discussions similaires

  1. Bind variable incluse dans une autre bind variable
    Par kinder_pingui dans le forum SQL
    Réponses: 3
    Dernier message: 28/11/2006, 10h35
  2. [PHP / Oracle 9] Bind variables
    Par didier_s dans le forum Oracle
    Réponses: 3
    Dernier message: 23/06/2006, 17h00
  3. [Oracle 9i] Bind variables et sql dynamique
    Par jld_33 dans le forum Oracle
    Réponses: 17
    Dernier message: 09/06/2006, 11h49
  4. probleme de bind variable
    Par elbrujo2323 dans le forum Oracle
    Réponses: 7
    Dernier message: 22/02/2006, 13h49
  5. [9i] Bind variable dans fichier trace
    Par learn dans le forum Oracle
    Réponses: 6
    Dernier message: 27/01/2006, 15h24

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