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

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

Onglet Index

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

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.

Onglet Base

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

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

Boutons spécifiques

Actualiser

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

Générer

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

See also Reportez-vous à la documentation de Mise en oeuvre