Bonjour,
l'utilisation de la clause with aura-t-elle un impact sur le temps d'exécution des requêtes?
Bonjour,
l'utilisation de la clause with aura-t-elle un impact sur le temps d'exécution des requêtes?
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
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?
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...
l'explain plain est bon dans les deux cas, les requêtes passent par le bon index dans les deux cas.
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager