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

Administration Oracle Discussion :

Comment fige t-on le plan d'exécution d'une requête


Sujet :

Administration Oracle

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2010
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2010
    Messages : 73
    Points : 93
    Points
    93
    Par défaut Comment fige t-on le plan d'exécution d'une requête
    Bonjour,

    J'ai une question à poser aux DBA qui liront ce post.
    Depuis quelque temps, notre DBA de production me parle de figer le plan d'un certain nombre de requêtes dont les plans ont changé depuis 1 mois.

    J'aimerais savoir comment on le fait ?

    Le plan d'exécution d'une requete SQL est, me semble t-il, consultable dans la vue V$SQL_PLAN. L'historique des différents plans sont obtenus grâce à la vue DBA_HIST_SQL_PLAN.

    Comment à partir de ces vue, un DBA peut t-il figer le plan d'une requete ?

    Merci de m'éclairer ce point svp.

  2. #2
    Membre averti Avatar de LBO72
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Points : 342
    Points
    342
    Par défaut
    Bonjour,

    Une des solutions serait de bloquer les stats.
    l'autre solution serait d'uliser les HINT pour orienter l'optimiseur à prendre toujour le même plan d'exécution.
    ....
    ....

    LBO72

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 412
    Points : 807
    Points
    807
    Par défaut
    Citation Envoyé par alexisongagna Voir le message
    Depuis quelque temps, notre DBA de production me parle de figer le plan d'un certain nombre de requêtes [...]
    J'aimerais savoir comment on le fait ?

    Juste par curiosité, il (le DBA) sait comment faire mais ne veut pas vous dire? Ou alors il a entendu dire que ça se faisait mais ne sais pas comment faire? Ou il va vous expliquer en guise de cadeau de noel?

    Sinon pour le technique: SQL Plan management: DBMS_SPM. Vu la manière dont vous en parlez, ce sera bien plus propre que de mettre des hints, et c'est compatible avec le bind variable peeking. C'est fort quand même.
    (11g, sinon c'est les outlines en 10g il me semble mais je connais pas plus que ça)

  4. #4
    Membre averti
    Avatar de ora_home
    Homme Profil pro
    Consultant Oracle
    Inscrit en
    Février 2009
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Consultant Oracle
    Secteur : Finance

    Informations forums :
    Inscription : Février 2009
    Messages : 103
    Points : 376
    Points
    376
    Par défaut
    A mon avis, la solution c'est de fixer les plan d'exécutions par des HINT, comme ça oracle doit oblogatoirement suivre vos instructions.
    ALors si on stop les statistiques ca sera pour tt les requete alors que dans votre cas, vous avez juste fixer le plan pour certains requetes.

  5. #5
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Les solutions pour fixer un plan d'exécution dépendent de votre version et vos options: avez-vous Tuning Pack ?

    Mais fixer un plan est - à mon avis - une solution temporaire: le plan que vous fixez ne sera peut-être pas bon
    - lorsque le volume des données va changer
    - lorsque vous allez changer de version d'Oracle
    - lorsque vous allez déployer des évolutions de votre application
    - ...

    Mais si plusieurs plans ont changé depuis 1 mois, il faut comprendre pourquoi, et fixer la cause !

    Cordialement,
    Franck.
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

Discussions similaires

  1. Affichage du plan d'exécution d'une requête
    Par orafrance dans le forum Contribuez
    Réponses: 1
    Dernier message: 30/12/2011, 16h01
  2. Plan d'exécution d'un requête
    Par Etienne5685 dans le forum Développement
    Réponses: 16
    Dernier message: 03/06/2011, 17h43
  3. Forcer le choix du plan d'exécution d'une requête
    Par hmechbal dans le forum Oracle
    Réponses: 5
    Dernier message: 20/01/2011, 23h28
  4. Réponses: 4
    Dernier message: 30/10/2008, 11h50
  5. Arrêt de l'exécution d'une requête MySQL dans DELPHI.
    Par joelmarc dans le forum Bases de données
    Réponses: 9
    Dernier message: 11/10/2004, 16h11

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