Bonjour,
j'aurais voulu connaitre la signification de NESTED LOOP et HASH JOIN dans un plan d'exécution et leur différence.
Lequel des 2 est plus optimal et pourquoi?
Version imprimable
Bonjour,
j'aurais voulu connaitre la signification de NESTED LOOP et HASH JOIN dans un plan d'exécution et leur différence.
Lequel des 2 est plus optimal et pourquoi?
Le béaba du DBA (ça rime)
Jointure entre 2 tables :
1) table A : nb enreg important, B faible :
Oracle grace aux estimations issues des Statistiques, va choisir dans ce cas un NESTED LOOP (Boucle imbriqué ):
Il prend chaque enreg de A et vérifie qui le trouve dans B
Donc le nombre de test = A x B
2) table A : nb enreg important, B nb enreg important :
Dans ce cas on fait du HASH JOIN (Haschage)
Calul du clé de HASH pour tous les enregistrements de A. Ensuite pour chaque clé de Hash de B, il regarde si il a déjà cette clé sur A. Si oui il garde l'enreg.
Il existe aussi les MERGE JOIN.
Si les stats sont incorrects, Oracle peut partir en NESTED LOOP à tort, et cela est très dévastateur.
merc.
et c'est quoi le principe du merge join?
t'as un lien où sont expliqués les différents résultats d'un explain plan?
Bonjour,
Si quelqu'un a une réponse à farenheiit, cela rendrait des gens heureux :-). je suis vraiment intéressé :king:
(je suis en oracle 10gR2)Citation:
t'as un lien où sont expliqués les différents résultats d'un explain plan?
Merci bien.
LBO72.
Les différents types de jointures sont assez bien documentées dans le Performance Tuning Guide.
Il y a un peu de documentation sur EXPLAIN PLAN ici et là.
Le reste on peut le trouver dans le livre de C. Antognini: Troubleshooting Oracle Performance.
Je l'ai lu .. en partie. Il aborde de façon systématique l'analyse et la résolution de problèmes de performances surtout au niveau d'une requête donnée (pas de Statspack/AWR). Il y a un peu de modélisation physique à la fin du livre. Donc, oui je le recommande.
Sinon il y a aussi Oracle Efficient By Design plus général (comment bien utiliser SQL et PL/SQL avec Oracle), même si le livre date un peu (il utilise surtout Oracle 9i).
Hélas, aucun de ces livres n'est traduit en français et je ne connais pas de livre en français de niveau équivalent. :(
Et sur tout ce qui est analyse des wait events, interprétation des rapport statspack, tkprof etc. t'as un livre à recommander?
Optimizing Oracle Performance est un très bon libre sur l'utilisation de la trace SQL et l'analyse des waits events (même s'il concerne surtout Oracle 9i).
Je ne connais pas de livre dédié à Statspack.
J'ai trouvé ce livre concernant Statspack:
Oracle 9i High-Pperformance Tuning with STATSPACK
Celui-ci est assez sympa et facile à lire : http://www.amazon.fr/Optimisation-pe...7802522&sr=1-4
Celui que j'ai est orienté 9i mais présente des concepts pour toutes les versions et surtout une méthodologie d'investigation intéressante (en fait, celle préconisée par Oracle ;))
Tu ne vends pas le tiens par hasard ? parcequ'il n'est plus disponible sur le net
Si tu t'adresses à moi, je n'ai malheureusement jamais eu/pris le temps de faire un tuto à ce sujet... alors un livre encore moins :cry:
Non désolé, par contre, tu peux peut-être t'adresser à l'éditeur (campuspress) pour voir s'il ne leur resterait pas des exemplaires sous la main ou connaitre son remplaçant ;)
Celui-ci a l'air pas mal : http://www.pearson.fr/livre/?GCOI=27440100664390
Je reviens de chez Eyrolles
Et après avoir feuilleter plusieurs livres pendant une heure j'ai décidé de prendre les livres suivants:
The art and science of oracle de Christopher LAWSON
Oracle PL/SQL Best Practices de Steven Feuerstein
Le 2ème est une référence et le premier m'a l'air vraiment super.
Quelqu'un les a t'il déjà lu ?
Salut Grand Maitre OraFrance :-)
Pourrais-tu me donner plus d'infos sur le livre que tu nous conseilles : http://www.pearson.fr/livre/?GCOI=27440100664390
Quels sujets aborde-t-il ?
Je suis plus intéressé par le fait de diagnostiquer les requêtes mal écrites et de bien savoir lire un plan d'excécution.
Merci bien.
LBO72.
Ca va de l'interprétation des traces à la compréhension de l'usage des indexes en passant par la lecture du plan d'exécution. Ca traite aussi du paramètrage et surtout la méthodo.
Bonsoir,
Personnellement j'ai suivi une formation donnée par Razvan Bizoï.
Il a écrit plusieurs livres :
http://www.editions-eyrolles.com/Aut...zvan-bizoi?xd=
Et il est en train d'en écrire de nouveaux pour les dernières versions Oracle.
La formation était très intéressante, je pense donc que les livres aussi mais je ne les ai pas encore lu, ni acheté. Si qq connait et à un avis ...
Il y a une critique ici
http://oracle.developpez.com/livres/...is#L2212117477