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 :

Impact de la clause with sur les perfs


Sujet :

SQL Oracle

  1. #1
    Membre régulier

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 73
    Points : 71
    Points
    71
    Par défaut Impact de la clause with sur les perfs
    Bonjour,

    l'utilisation de la clause with aura-t-elle un impact sur le temps d'exécution des requêtes?

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Février 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2006
    Messages : 139
    Points : 152
    Points
    152
    Par défaut
    Bonjour,
    la clause with permet de factoriser et/ou forcer l'exécution d'une requête avant une autre. Plutot que d'acceder plusieurs fois à une table avec une condition differente, on peut la mettre dans le with pour fetcher tous les resultats en un seul coup et travailler en memoire.
    With est similaire à une vue. Mais bien utilisé, elle permet de faire varier le plan dans le bon sens.

    cdt

  3. #3
    Membre régulier

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 73
    Points : 71
    Points
    71
    Par défaut
    C'est pas le cas pour moi!!!
    le fait d'enlever la clause with de mes requêtes a considérablement rédui le temps d'exécution de ma requête.
    est-ce normal? ou une mauvaise utilisation?

  4. #4
    Membre éclairé Avatar de philcero
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Septembre 2007
    Messages
    528
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2007
    Messages : 528
    Points : 773
    Points
    773
    Par défaut
    Le mieux est de regarder l'EXPLAIN PLAN. D'un autre côté l'OPTIMIZER est une produit à lui tout seul et le fait que quelque chose qui est censé amélioré, dégrade les performances, est souvent un signe comme quoi quelque chose ne tourne pas rond ailleurs...

  5. #5
    Membre régulier

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 73
    Points : 71
    Points
    71
    Par défaut
    l'explain plain est bon dans les deux cas, les requêtes passent par le bon index dans les deux cas.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Février 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2006
    Messages : 139
    Points : 152
    Points
    152
    Par défaut
    Est ce qu'il y une fonction dans ta requete ou des unions?
    L'explain ne donne pas toujours l'estimation pour les fonctions.

    Le with ne change pas forcement les index utilisés mais il force l'execution de la requete. Il monte en memoire le resultat de la requte du with et l'utilise comme une source de donnée independante. Si tu remplaces par une vue inline par exemple, Oracle va essayer de calculer un plan avec les tables de ta vue.

    Par exemple, il y a 2 tables en jointure. Si pour chaque ligne de la driving table, il y a peu de donnees differentes ramenees par la jointure, il est plus rapide de recuperer toutes les valeurs possibles de la jointure et de mettre en jointure ce resultat. D'une nested loop on passera surement à un Hash.

    Cdt

Discussions similaires

  1. CPUSPEED impact sur les perf?
    Par Nico.db2 dans le forum DB2
    Réponses: 0
    Dernier message: 05/10/2010, 22h12
  2. Impact du double archive log sur les performances du système ?
    Par condor_01 dans le forum Administration
    Réponses: 5
    Dernier message: 22/05/2008, 14h08
  3. Amis DBAs : question idiote sur les perfs
    Par ZERS dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 28/09/2006, 09h45
  4. [JDBC][Fermeture] Influence sur les perfs?
    Par fabszn dans le forum JDBC
    Réponses: 3
    Dernier message: 26/12/2005, 16h15
  5. incidence nombre de ligne sur les perfs
    Par pram dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 25/02/2005, 14h08

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