-
Full Scan Oracle
Bonjour
J'aimerais connaitre l sens de qq mots oracles
1/ Quelle est la dif. entre CHOOSE ET RULE ?
2/ A quoi ça sert de faire des analyses ?
3/QU'est ce qu'un FULL scan?
4 / Comment utilise-t-on EXPLAIN PLAN et comment fait-on des FULL SCAN ?
Je m'excuse d'être lourd.
Merci pour les réponses !
-
Bonjour idsaw,
Le sujet est assez vaste mais le principe est le suivant :
Oracle possède un optimizeur de requête qui examine chaque ordre sql pour déterminer le meilleur chemin possible de parcourt des tables et donner un résultat dans les meilleurs délais.
Le mode d'optimisation est fixé dans le fichier d'init de l'instance (optimizer_mode).
S'il vaut RULE l'optimizeur va appliquer des règles fixes pour ordonner le traitement des tables. Il favorise par exemple d'abord l'utiisation de clés primaires, puis d'index, etc...
Sur CHOOSE il va tenir compte de la volumétrie des tables, ce qui est plus rusé considérant par exemple que s'il y a peu d'enregistrements dans une table ça ne sert à rien de se jeter sur sa clé primaire pour profiter d'un index.
Le calcul des statistiques est fait par l'analyse des tables. En fonction des versions on utilise dbms_utility.analyze_schema (8i) ou dbms_stats.gather_schema_stats(9i). 10 chais pas.
Un full scan c'est le parcourt intégral d'une table par Oracle pour rechercher une valeur. Ce qu arrive si on cherche une valeur particulière dans une table sans index par exemple.
Voilà c'est un peu grossier mais il me semble que l'idée y est.
En espérant ne scandaliser aucun puriste.
Pozzo
-
A noter que le mode CHOOSE passe par les stats uniquement si l'analyse a été faite (il existe ANALYZE avant la 9i aussi).