|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |
|
Candidat au titre de Membre du Club
![]() Yves-Mari Consultant informatique Inscription : octobre 2002 Messages : 28 ![]() |
Bonjour,
Je lis dans le sujet Mettre les résultats en colonne qu'Orafrance dit Citation:
Comment cela se fait ce ? et dans quel mesure cela améliore t'il les perfs ? C'est pour savoir si je me casse le Q à bataillé avec le client pour lui faire admettre une "nouveauté" de plus ou pas |
|
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() Inscription : septembre 2007 Messages : 519 ![]() |
Le WITH sert à "matérialiser" une sous-requête le temps de ta requête maître. Autrement dit si tu as plusieurs références à une même sous-requête Oracle ne l'effectuera qu'une seule fois et mutualisera le résultat à toute ta requête.
C'est très utile lors des requêtes récursives. Cherche dans la documentation SUBQUERY FACTORING pour plus d'informations (documentation SQL REFERENCE/SELECT). |
|
|
00
|
|
|
#3 | ||||||||
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Pour faire simple, Oracle lance la requête du WITH et garde le résultat de coté, ainsi qu'on l'utilise 2 fois ou 10 fois les perfs sont sensiblement moins affectées que si la requête devait être exécutée 10 fois
Code :
Citation:
Code :
Citation:
Regarde la colonne disk dans le 2eme cas Pour info voici les plans : Citation:
Citation:
|
||||||||
|
|
00
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 459 ![]() |
Merci pour l'explication.
__________________
More Code : More Bugs. Less Code : Less Bugs |
|
|
00
|
|
|
#5 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Evidemment, tout le monde aura compris que c'est d'autant plus intéressant que le nombre de lignes retournées par la requête du WITH est restreint et/ou que son résultat est utilisé très souvent
Edit : Notez que le WITH est un opérateur de la norme SQL |
|
|
00
|
|
|
#6 |
|
Membre chevronné
![]() Inscription : septembre 2007 Messages : 519 ![]() |
Petit commentaire supplémentaire, le WITH fait partie de la norme SQL99 et est présent sous Oracle qu'à partir de la 9.2.
|
|
|
00
|
|
|
#7 |
|
Candidat au titre de Membre du Club
![]() Yves-Mari Consultant informatique Inscription : octobre 2002 Messages : 28 ![]() |
Messieurs, je vous remercie de ces explication didactique et très clair
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com