IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

Commande analyse ?


Sujet :

Oracle

  1. #1
    Membre régulier
    Profil pro
    Auditeur informatique
    Inscrit en
    Janvier 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 178
    Points : 85
    Points
    85
    Par défaut Commande analyse ?
    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

  2. #2
    Membre actif
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2005
    Messages
    250
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 250
    Points : 277
    Points
    277
    Par défaut
    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

  3. #3
    Membre régulier
    Profil pro
    Auditeur informatique
    Inscrit en
    Janvier 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 178
    Points : 85
    Points
    85
    Par défaut
    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

  4. #4
    Membre actif
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2005
    Messages
    250
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 250
    Points : 277
    Points
    277
    Par défaut
    Citation Envoyé par nicocolt
    Lorsque tu analyses une table, le résultat est stocké où ? en mémoire ?
    Sur le disque dur en fait
    Lors de la manipulation de la table analysée, le système crée un index lui-même ?
    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,...

  5. #5
    Membre régulier
    Profil pro
    Auditeur informatique
    Inscrit en
    Janvier 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 178
    Points : 85
    Points
    85
    Par défaut
    Ok impecc

    En fait les stats améliorent la performance du moteur oracle ?

  6. #6
    Membre actif
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2005
    Messages
    250
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 250
    Points : 277
    Points
    277
    Par défaut
    Citation Envoyé par nicocolt
    En fait les stats améliorent la performance du moteur oracle ?
    Voilà c'est exactement çà...
    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...

  7. #7
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Citation Envoyé par dyvim
    Sur le disque dur en fait
    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 notament

  8. #8
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 414
    Points : 672
    Points
    672
    Par défaut
    il me semble que depuis quelques temps, Oracle recommande d'utiliser le package dbms_stats à la place d'analyze, non?

  9. #9
    Membre actif
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2005
    Messages
    250
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 250
    Points : 277
    Points
    277
    Par défaut
    Citation Envoyé par gregory.broissard
    il me semble que depuis quelques temps, Oracle recommande d'utiliser le package dbms_stats à la place d'analyze, non?
    Je confirme...
    De plus il y a d'avantage de possibiltés avec ce package (mais ce n'est pas pour rien que je l'avais cité dans ma première réponse )
    Et même pour la 10g ils sont allés plus loin puisque la collecte de statistiques est automatisée par défaut. Il faut juste la configurer pour ne pas "plomber" certaines perfs si vous travaillez la nuit par exemple.

  10. #10
    Membre averti Avatar de Wurlitzer
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 469
    Points : 408
    Points
    408
    Par défaut
    Peux tu préciser ce que tu veux dire par la collecte est automatisé en 10g. Je connais l'option de DBMS_STATS qui ne recalcule que les stats des tables qui ont evolué et donc qui en ont besoin. Mais j'ai toujours besoin de lancer DBMS_STATS périodiquement.

    Y a une autre solution ?

  11. #11
    Membre actif
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2005
    Messages
    250
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 250
    Points : 277
    Points
    277
    Par défaut
    Ben en 10g il faut que le GATHER_STATS_JOB soit ENABLED déjà...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DBMS_SCHEDULER.ENABLE('GATHER_STATS_JOB');
    Et là normalement une collecte des stats automatiques est faite.

    Il faut ensuite vérifier/modifier sa programmation avec DBMS_SCHEDULER ou Oracle Enterprise Manager...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DBMS_SCHEDULER.SET_ATTRIBUTE('...')
    Je ne peux malheureusement pas t'en dire bcp plus puique je travaille en 9i et que je ne suis pas DBA.

  12. #12
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Oracle crée depuis la 10G et dans une optique d'automatisation un job grace au schéduler et qui va permettre de collecter automatiquement les stats à un intervalle de temps donnée. Il se base bel et bien sur le package DBMS_STATS.

    Cependant je vous conseille de supprimer cette planification et de gérer vous même vos collectes de stats

  13. #13
    Membre actif
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2005
    Messages
    250
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 250
    Points : 277
    Points
    277
    Par défaut
    Citation Envoyé par Jaouad
    Cependant je vous conseille de supprimer cette planification et de gérer vous même vos collectes de stats
    Mais pourquoi ?
    Aurais tu des motifs d'insatisfaction de cette plannification?

  14. #14
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    car c'est un job schédulé sans tenir compte de la spécificité de chaque BDD. IL vaut mieux le customiser en fonction de ces instances

  15. #15
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Citation Envoyé par nicocolt
    ANALYSE TABLE <ma_table> COMPUTE STATISTICS;
    il faut bien sûr employer l'americanisme ANALYZE

Discussions similaires

  1. Analyser la ligne de commande
    Par smarties dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 29/03/2008, 11h33
  2. Analyse de la commande TOP
    Par elitost dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 25/09/2007, 14h04
  3. Gestion Commande : Analyse et code
    Par Andry dans le forum Delphi
    Réponses: 6
    Dernier message: 25/10/2006, 14h04
  4. Commande pour analyser un fichier avec lex et yacc
    Par gRaNdLeMuRieN dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 13/09/2005, 19h12
  5. Analyser la ligne de commande
    Par benj29 dans le forum C
    Réponses: 14
    Dernier message: 19/11/2002, 04h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo