|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
![]() ![]() vincent rogier Inscription : juillet 2007 Messages : 2 366 ![]() |
Bonjour,
Jean-Philippe Guilloux vous propose un tutoriel : Initiation à l'optimisation de requêtes SQL sous ORACLE Ce tutoriel présente les notions de plan d'exécution, d'optimiseur, de coût, d'index, statistiques... Bonne lecture... et n'hésitez pas à laisser vos remarques et commentaires dans cette discussion
__________________
Vincent Rogier. Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique ! OCILIB (C Driver for Oracle) Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle |
|
10
|
|
|
#2 |
|
Invité de passage
![]() Inscription : mai 2002 Messages : 9 ![]() |
Excellent article. Merci beaucoup
|
|
|
00
|
|
|
#3 |
|
Membre confirmé
![]() ![]() Inscription : mars 2006 Messages : 64 ![]() |
de rien, ça fait plaisir comme commentaire
__________________
Pas de question technique par MP SVP.
|
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Inscription : juin 2009 Messages : 152 ![]() |
Je confirme, il est vraiment bien...
Merci |
|
|
10
|
|
|
#5 |
|
Membre confirmé
![]() ![]() Inscription : mars 2006 Messages : 64 ![]() |
bah merci aussi alors
Sinon, si j'ai le temps, gloups ... j'approfondirai un de ces 4 certaines parties comme les clusters, le précalcul d'éléments , le parallellisme et parfois des retour d'exp sur des bizzareries ... j'espère avoir le temps et la motiv pour cela, mais là je change de boulot en devenant architecte système donc c'est pas gagné pour de suite
__________________
Pas de question technique par MP SVP.
|
|
|
00
|
|
|
#6 |
|
Membre habitué
![]() Étudiant Inscription : décembre 2010 Messages : 115 ![]() |
Bonjour,
Vraiment merci pour le tutoriel.Cela va m'aider à démarrer mon projet ![]() Bonne continuation. |
|
|
00
|
|
|
#7 | |
|
Membre du Club
![]() Arnaud Inscription : octobre 2002 Messages : 56 ![]() |
Bonjour,
En parcourant le tutoriel, j'ai remarqué une petite erreur: Citation:
__________________
Tuning and optimization are not a fix to a bad design. A good design is a fix to a bad design. |
|
|
|
00
|
|
|
#8 | ||||||||
|
Membre Expert
![]() Olivier JolySupport Inscription : décembre 2010 Messages : 549 ![]() |
De plus l'exemple donné n'est pas forcément si probant que ça
Prenons deux tables importantes : dba_tables et dba_segments et les requêtes suivantes : Code :
Code :
On obtient après la seconde exécution : Code :
Code :
Mais je suis en 10gR2 (10.2.0.5 pour être précis) |
||||||||
|
00
|
|
|
#9 |
|
Membre du Club
![]() Arnaud Inscription : octobre 2002 Messages : 56 ![]() |
Le join est également plus rapide chez moi, en utilisant tes requêtes.
Mais j'imagine que c'est au cas par cas, je me rappelle avoir vu des cas ou le exists était plus performant. Savoir que les deux méthodes existent ne peut être que bénéfique Par ailleurs, je ne sais pas si se baser sur le "elapsed time" est très pertinent, beaucoup de paramètres entrent en ligne de compte: charge générale de la machine, cache (oracle + disque + FS), éventuellement le réseau etc...
__________________
Tuning and optimization are not a fix to a bad design. A good design is a fix to a bad design. |
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() Olivier JolySupport Inscription : décembre 2010 Messages : 549 ![]() |
En effet, le but de ma remarque était surtout de dire remplacer une jointure par un existe n'est pas une optimisation à effectuer systématiquement car dans certain cas la jointure est plus rapide:
Donc l'assertion "Vous constaterez lors de tables avec de nombreux enregistrements, que celà est quand même bien plus rapide ..." est fausse en 10g (et en 11g) |
|
00
|
|
|
#11 |
![]() ![]() |
J'ajouterai que les requêtes ne sont équivalentes que lorsque certaines conditions sont remplies : il faut d'abord veiller à écrire la requête qui donnera le bon résultat.
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#12 |
|
Expert Confirmé Sénior
![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 4 108 ![]() |
|
|
|
00
|
|
|
#13 | ||||||||||||||
|
Membre Expert
![]() Olivier JolySupport Inscription : décembre 2010 Messages : 549 ![]() |
Ok, comme je suis taquin, je le fais avec des tables, c'est encore plus criant ...
Code :
Code :
Code :
Code :
Code :
bon on continue avec nos deux requêtes mais cette fois ci on se débrouille pour qu'elles soient effectivement équivalentes. Code :
Code :
|
||||||||||||||
|
00
|
Copyright © 2000-2013 - www.developpez.com