Développement >  Utilitaires >  Vérifications >  Statistiques base de données >  Statistiques Oracle  

Afficher tout Masquer tout

Cette fonction permet de visualiser les statistiques générées sur la base de données lorsque la base de données utilisée est Oracle™.

Elle permet aussi de générer ou de supprimer  les statistiques.

Remarque importante

Attention, ce type de fonction facilite, via une interface utilisateur homogène avec le progiciel, le lancement de procédures d'exploitation dévolues à un administrateur de base de données. Elle est faite pour être lancée par un tel administrateur (habituellement appelé DBA).

Pour être utilisée avec profit, elle suppose donc une connaissance préalable du fonctionnement des bases de données et de leur optimisation.

A contrario, une utilisation inappropriée de la fonction peut poser de sérieux problèmes de performances et mettre en péril la sécurité de l'exploitation du progiciel.

Gestion de l'écran

Cette fonction permet de visualiser et de générer ou supprimer les statistiques sur la base de données.
Ces éléments sont présentés sur trois onglets : le premier donne la liste des tables et l'état des statistiques pour chacune, le deuxième donne la liste des index et l'état des statistiques pour chacun, le troisième donne la liste des paramètres de base de données liés à l'optimiseur et à l'utilisation des statistiques.

En-tête

Présentation

Permet de connaître les caractéristiques de la base de données utilisée.

Fermer

 

Champs

Les champs suivants sont présents dans cet onglet :

  • Base de données (champ BDDNAM)

Nom de la base de données

  • Version (champ VER)

Numéro de version de la base de données

  • champ VERDES

Description de la version de la base de données

Fermer

 

Onglet Tables

Présentation

Cet onglet présente la liste des tables et l'état des statistiques pour chacune d'elles.

Il est possible de générer ou supprimer les statistiques :

    • pour une table par clic droit,
    • pour toutes les tables ou une partie des tables en sélectionnant les lignes voulues avant de déclencher l'action par les boutons de bas d'écran.

La suppression des statistiques sur une table supprimera la totalité des statistiques générées pour celle-ci et donc aussi de ses index.

La génération des statistiques sur une table ne génèrera pas les statistiques sur ses index.

Fermer

 

Champs

Les champs suivants sont présents dans cet onglet :

Tableau

  • A traiter (champ PROFLG)

Permet de définir si la ligne doit être traitée en génération ou suppression de statistiques, par les boutons de bas d'écran correspondants.

  • Table (champ TAB)

Nom de la table dans la base de données

  • Statistiques (champ STTFLG)

Indique si des statistiques valides sont générées en base de données

  • Date dernière analyse (champ STTDAT)

Date de la dernière analyse des statistiques

  • champ STTHOU

Heure de la dernière analyse des statistiques

Fermer

 

Fonctions accessibles par clic droit sur le tableau

Oui à tout le reste

Lorsqu'on a un tableau de saisie de choix multiples avec un choix de réponse Oui / Non sur chaque ligne, cette fonction permet de répondre Oui à toutes les lignes à partir de la ligne courante.

Non à tout le reste

Lorsqu'on a un tableau de saisie de choix multiples avec un choix de réponse Oui / Non sur chaque ligne, cette fonction permet de répondre Non à toutes les lignes à partir de la ligne courante.

Actualiser la ligne

Permet de rafraîchir l'affichage de la ligne courante du tableau

Générer pour la ligne

Permet de générer les statistiques pour la ligne courante du tableau

Supprimer pour la ligne

Permet de supprimer les statistiques pour la ligne courante du tableau

 

Fermer

 

Onglet Index

Présentation

Cet onglet présente la liste des index et l'état des statistiques pour chacun d'eux.

Fermer

 

Champs

Les champs suivants sont présents dans cet onglet :

Tableau

  • A traiter (champ PROFLG)

Permet de définir si la ligne doit être traitée en génération ou suppression de statistiques, par les boutons de bas d'écran correspondants.

  • Table (champ TAB)

Nom de la table dans la base de données

  • Index (champ INDEX)

Nom de l'index dans la base de données

  • Statistiques (champ STTFLG)

Indique si des statistiques valides sont générées en base de données

  • Date dernière analyse (champ STTDAT)

Date de la dernière analyse des statistiques

  • champ STTHOU

Heure de la dernière analyse des statistiques

Fermer

 

Il est possible de générer ou supprimer les statistiques :

    • pour un index par clic droit,
    • pour tous les index ou une partie des index  en sélectionnant les lignes voulues avant de déclencher l'action par les boutons de bas d'écran.

Fonctions accessibles par clic droit sur le tableau

Oui à tout le reste

Lorsqu'on a un tableau de saisie de choix multiples avec un choix de réponse Oui / Non sur chaque ligne, cette fonction permet de répondre Oui à toutes les lignes à partir de la ligne courante.

Non à tout le reste

Lorsqu'on a un tableau de saisie de choix multiples avec un choix de réponse Oui / Non sur chaque ligne, cette fonction permet de répondre Non à toutes les lignes à partir de la ligne courante.

Actualiser la ligne

Permet de rafraîchir l'affichage de la ligne courante du tableau

Générer pour la ligne

Permet de générer les statistiques pour la ligne courante du tableau

Supprimer pour la ligne

Permet de supprimer les statistiques pour la ligne courante du tableau

 

Fermer

 

Onglet Base

Présentation

Cet onglet présente la liste des paramètres de base de données liées à l'optimiseur et à l'utilisation des statistiques.

Fermer

 

Champs

Les champs suivants sont présents dans cet onglet :

Tableau Paramètres de l'optimiseur

  • Paramètre (champ PAR)

Affiche les paramètres  liés à l'optimiseur et à l'utilisation des statistiques

Les paramètres présentés dépendent de la version d'Oracle. Ces paramètres ne sont pas modifiables depuis cette fonction.

  • Valeur (champ PARVAL)

 

  • Valeur par défaut (champ DEFVAL)

 

  • Description (champ DES)

 

Fermer

 

Il n'est pas possible d'agir ici sur ces valeurs.

Fonctions accessibles par clic droit sur le tableau

Actualiser la ligne
Générer pour la ligne
Supprimer pour la ligne

 

Fermer

 

Onglet Base

Champs

Les champs suivants sont présents dans cet onglet :

Tableau Paramètres de l'optimiseur

  • Paramètre (champ PAR)

Affiche les paramètres  liés à l'optimiseur et à l'utilisation des statistiques

Les paramètres présentés dépendent de la version d'Oracle. Ces paramètres ne sont pas modifiables depuis cette fonction.

  • Valeur (champ PARVAL)

 

  • Valeur par défaut (champ DEFVAL)

 

  • Description (champ DES)

 

Fermer

 

Boutons spécifiques

Ce bouton, également accessible par le raccourci  , permet de rafraîchir l'affichage des onglets.

Permet de générer les statistiques pour toutes les lignes sélectionnées dans les tableaux des onglets Tables et Index

Permet de supprimer les statistiques pour toutes les lignes sélectionnées dans les tableaux des onglets Tables et Index

Explications sur les statistiques Oracle

Quand les statistiques doivent être calculées ?

Cela dépend du taux et du volume de changement des données dans la base.

Les statistiques d’un objet deviennent obsolètes lorsqu’un volume important d’activité DML est opéré sur l’objet.
Il faut veiller à faire suivre une insertion ou une suppression massive par une nouvelle analyse, afin d’assurer la correspondance entre les statistiques du dictionnaire, la distribution et le contenu des lignes de la table. Si votre table contient après-coup un nombre important de lignes et que vos statistiques portent sur une petite partie d’entre-elles, il est possible que le plan d’exécution construit par l’optimiseur ne soit pas optimal.

Comment fonctionne l'optimiseur ?

L'optimisation basée sur le coût est déclarée par un le paramètre optimizer_mode qui peut prendre 3 valeurs

    • ALL_ROWS (valeur par défaut en Oracle 10)
    • FIRST_ROWS [n]
    • FIRST_ROWS
    • CHOOSE (valeur par défaut en Oracle 9, non supportée en Oracle 10)


L'optimisation statique est déclarée par la valeur RULE. Dans ce cas, l'optimiseur utilise la syntaxe de la requête pour réaliser le meilleur plan d'exécution. L’optimiseur syntaxique n'est plus supporté en Oracle 10.

  • Si le paramètre OPTIMIZER_MODE est positionné à  ALL_ROWS, cela veut dire "Meilleur débit" : la requête est exécutée pour qu'elle soit la plus rapide possible pour tous les enregistrements à charger.
  • Si le paramètre OPTIMIZER_MODE est positionné à  FIRST_ROWS, cela veut dire "Meilleur temps" : la requête est exécutée pour que la première réponse soit trouvée le plus rapidement possible.
  • Si le paramètre OPTIMIZER_MODE est positionné à  FIRST_ROWS [n], cela veut dire "Meilleur temps" : la requête est exécutée pour que les n premières réponses soient trouvées le plus rapidement possible.
  • Si le paramètre OPTIMIZER_MODE est positionné à CHOOSE, c’est la présence de statistiques dans le dictionnaire qui détermine si l’optimiseur statistique est utilisé.

Utilisation d'un mode basé sur les coûts

Il est important que les statistiques soient générées pour tous les objets dans un schéma. En effet, la présence de statistiques partielles pour une instruction select peut amener le processus serveur à évaluer des statistiques sur des objets qui n’en disposent pas. Ce type d’échantillonnage de statistiques réalisé au cours de l’exécution n’est pas enregistré de façon permanente dans le dictionnaire de données. Il est donc répété à chaque exécution de la même requête.

Informations techniques

Toutes les informations sur les tables, index et statistiques sont lues directement dans la base de données à partir des tables et vues Oracle :

    • V$PARAMETER
    • PRODUCT_COMPONENT_VERSION
    • USER_TABLES
    • USER_INDEXES

Les dates de statistiques correspondent à la colonne LAST_ANALYZED des vues Oracle USER_TABLES et USER_INDEXES.

Les statistiques sont générées à l'aide du package Oracle DBMS_STATS.
Les procédures utilisées sont :

    • GATHER_TABLE_STATS
    • GATHER_INDEX_STATS
    • DELETE_TABLE_STATS
    • DELETE_INDEX_STATS

Messages d'erreur

Il n'y a pas de message d'erreur autre que les messages d'erreur génériques.

Tables mises en oeuvre

Aucune table n'est mise en oeuvre par cette fonction.