Bonjour,
Je cherche désespérement à comprendre à quoi sert la commande analyse.
J'étudie un script contenant
ANALYSE TABLE <ma_table> COMPUTE STATISTICS;
A quoi cela sert-il ?
Merci de votre aide
Nico
Bonjour,
Je cherche désespérement à comprendre à quoi sert la commande analyse.
J'étudie un script contenant
ANALYSE TABLE <ma_table> COMPUTE STATISTICS;
A quoi cela sert-il ?
Merci de votre aide
Nico
Pour répondre de façon très schématique...
Cela sert à calculer des statistiques sur une table.
Pour quoi faire ? De façon à ce que l'optimiseur de requetes d'Oracle puisse travailler correctement et choisir les bons index (ou pas) pour accéder aux données.
Voilà c'était la réponse simple...
Tu peux faire des recherches sur le forum aussi (et t'interesser à DBMS_STATS par la même occasion)
Par exemple ce tutoriel devrait t'interesser
Ok merci, ça m'aide déjà pas mal
Cependant, quelques questions subsistent....
Lorsque tu analyses une table, le résultat est stocké où ? en mémoire ?
Lors de la manipulation de la table analysée, le système crée un index lui-même ?
Merci
Sur le disque dur en faitEnvoyé par nicocolt
Non, il n'y a pas de création d'index mais des statistiques sont calculées sur la probabilité de rencontrer telle ou telle valeur, le nombre de lignes ainsi que la taille de la table sont remis à jour,...Lors de la manipulation de la table analysée, le système crée un index lui-même ?
Ok impecc
En fait les stats améliorent la performance du moteur oracle ?
Voilà c'est exactement çà...Envoyé par nicocolt
Il y a des nuances selon la version que tu utilises ou les réglages que tu as fait mais sinon c'est l'idée...
plus exactement dans le dictionnaire (table systéme Oracle), les colonnes LAST_ANALYZED et NUM_ROWS de dba_tables sont renseignées par l'ANALYSE notamentEnvoyé par dyvim
![]()
il me semble que depuis quelques temps, Oracle recommande d'utiliser le package dbms_stats à la place d'analyze, non?
il faut bien sûr employer l'americanisme ANALYZEEnvoyé par nicocolt
![]()
Partager