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

SQL Oracle Discussion :

Optimisation trigger Oracle


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Par défaut Optimisation trigger Oracle
    Bonjour,

    je suis une brêle en SQL.

    dans un trigger sous Oracle j'ai deux requêtes à la suite:

    UPDATE magasin mag
    SET mag.dernier_statut = :new.CDSTATUT ,
    mag.lb_statut = :new.LBSTATUT
    WHERE mag.CODE_COMPLET = (substr(:old.LBSTATUT, 27, 20) );

    et

    select mag.region_fk
    INTO region_id
    from magasin mag
    where mag.CODE_COMPLET = (substr(:old.LBSTATUT, 27, 20) );


    CODE_COMPLET est VARCHAR et il y a un index dessus.


    Je dois l'optimiser et il y a quelques questions que je me (vous) pose.

    - serait-il plus rapide d'effectuer les deux recherches sur la clé primaire de MAGASIN?
    - y a-t-il un moyen de ne pas rechercher deux fois la même ligne (une fois pour un update et une fois pour un select)? Si oui, cela améliorerait les performances?

    Merci pour votre aide

  2. #2
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    357
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 357
    Par défaut
    - serait-il plus rapide d'effectuer les deux recherches sur la clé primaire de MAGASIN?
    Effectue les explain plan apres une bonne analyse des stats et verifie par toi meme, mais a mon avis oui car tu as un index obligatoire sur ta cle primaire


    - y a-t-il un moyen de ne pas rechercher deux fois la même ligne (une fois pour un update et une fois pour un select)?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    UPDATE magasin mag
    SET mag.dernier_statut = :new.CDSTATUT ,
    mag.lb_statut = :new.LBSTATUT
    WHERE mag.CODE_COMPLET = (substr(:old.LBSTATUT, 27, 20) )
    RETURNING mag.region_fk INTO region_id;
    Si oui, cela améliorerait les performances?
    Explain plan toujours mais oui certainement

  3. #3
    Futur Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Par défaut Merci
    merci beaucoup!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PL/SQL - Trigger Oracle] Données non retournées
    Par Hug0_76 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 27/02/2007, 23h12
  2. Probleme Trigger Oracle 9i
    Par Strit83 dans le forum PL/SQL
    Réponses: 5
    Dernier message: 27/11/2006, 14h24
  3. Optimisation requete oracle
    Par Mehdilis dans le forum Oracle
    Réponses: 11
    Dernier message: 01/09/2006, 10h58
  4. Erreur trigger oracle
    Par djsbens dans le forum Oracle
    Réponses: 7
    Dernier message: 22/02/2006, 13h37
  5. [JDBC]Probleme avec trigger Oracle
    Par aurel89 dans le forum JDBC
    Réponses: 2
    Dernier message: 02/08/2005, 11h53

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