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

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 SQL Server™.

Elle permet aussi de mettre à jour 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 les statistiques sur la base de données.
Ces éléments sont présentés sur deux onglets : le premier donne la liste des index et l'état des statistiques pour chacun, le deuxième donne la liste des paramètres de base de données liés à la génération 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 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 de statistiques, par le bouton de bas d'écran correspondant.

  • 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

  • Nombre de lignes (champ NBRLIN)

Nombre de lignes de la table correspondant à l'index (count)

  • Statistiques automatiques (champ STTAUT)

Indique si les statistiques sont générées automatiquement pour l'index.

Correspond au paramètre base de données UPDATE STATISTICS automatique pour l'index.

  • Statistiques générées (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 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 le bouton 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

 

Fermer

 

Onglet Base

Présentation

Cet onglet présente la liste des paramètres de base de données liées à la génération automatique des statistiques.

Fermer

 

Champs

Les champs suivants sont présents dans cet onglet :

Tableau Paramètres des statistiques

  • Paramètre (champ PAR)

Affiche les options positionnées sur la base de données pour la génération automatique des statistiques.

Les options sont les suivantes

Option

Description

auto create statistics

Si vrai, les statistiques manquantes, requises par une requête pour l'optimisation, sont créées automatiquement durant l'optimisation.

auto update statistics

Si vrai, les statistiques non mises à jour, requises par une requête pour l'optimisation, sont créées automatiquement durant l'optimisation.

  • Valeur (champ PARVAL)

 

Fermer

 

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

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 le tableau de l'onglet Index

Explications sur les statistiques Sql Server

Quand les statistiques doivent-elles être mises à jour ?

SQL Server conserve les statistiques de distribution des valeurs de clé dans chaque index, et utilise ces statistiques pour déterminer les index à utiliser dans le traitement des requêtes.

Donc il peut être utile de mettre à jour les statistiques si

    • d'importantes modifications sont apportées aux valeurs de clé de l'index,
    • une grande partie des données d'une colonne indexée a été ajoutée, modifiée ou supprimée (autrement dit, si vous pensez que la distribution des valeurs de clé a changé)

Pourquoi ?

Microsoft® SQL Server™ permet de créer des informations statistiques au sujet de la distribution des valeurs dans une colonne qui doit être créée. Ces statistiques peuvent être exploitées par le processeur de requêtes afin de déterminer la stratégie optimale d'évaluation d'une requête. Lorsque l'on crée un index, SQL Server stocke automatiquement les informations statistiques relatives à la distribution des valeurs dans la ou les colonnes indexées. L'optimiseur de requêtes de SQL Server utilise ces statistiques pour estimer le coût de l'utilisation de l'index pour une requête. D'autre part, si l'option de base de données AUTO_CREATE_STATISTICS est activée (ON), ce qui est le cas par défaut, SQL Server crée automatiquement des statistiques pour les colonnes sans index utilisées dans un prédicat.

Si les données d'une colonne changent, les statistiques d'index et de colonne risquent de devenir obsolètes et donc d'amener l'optimiseur de requêtes à prendre des décisions peu judicieuses sur la manière de traiter une requête. Par exemple, si l'on crée une table avec une colonne indexée et 1 000 lignes de données, toutes comportant des valeurs uniques dans la colonne indexée, l'optimiseur de requêtes considère que la colonne indexée constitue une " bonne " solution pour recueillir les données pour une requête. Si l'on met à jour les données d'une colonne en créant de nombreuses valeurs dupliquées, la colonne n'est plus un candidat idéal à l'utilisation dans une requête. Cependant, l'optimiseur de requêtes la considère toujours comme un candidat approprié d'après les statistiques de distribution obsolètes de l'index, qui étaient basées sur les données d'avant la mise à jour.

Dès lors, SQL Server met automatiquement à jour les informations statistiques de manière régulière, à mesure que les données des tables sont modifiées. L'échantillonnage s'effectue de façon aléatoire parmi les pages de données et provient de la table ou du plus petit index non ordonné en clusters sur les colonnes nécessaires aux statistiques. Après la lecture d'une page de données à partir du disque, toutes les lignes de la page sont utilisées pour mettre à jour les informations statistiques. La fréquence de mise à jour de ces dernières est fonction du volume de données présentes dans la colonne ou l'index et de la quantité de données variables.

SQL Server garantit toujours l'échantillonnage d'un nombre minimal de lignes. Les tables de taille inférieure à 8 Mo font toujours l'objet d'une analyse complète dans le but d'élaborer des statistiques.

Le coût de cette mise à jour automatique des statistiques est minimisé en raison de l'échantillonnage des données ; celles-ci ne sont pas toutes analysées.

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 Sql Server :

    • sysusers
    • sysobjects
    • sysindexes

Les dates de statistiques sont obtenues à l'aide de la fonction STATS_DATE

Les informations sur la génération automatique des statistiques sur les index sont obtenues à l'aide de la procédure sp_autostats

Les informations sur la gestion automatique des statistiques sur la base de données sont obtenues à l'aide de la procédure sp_dboption

Les statistiques sont mises à jour avec l'instruction UPDATE STATISTICS

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.