Une statistique (sur une table, une colonne / un ensemble de colonnes ou sur un index) donne des informations sur :
– la table (nombre de lignes, taille moyenne d’une ligne, nombre de blocs/page, densité),
– la répartition des valeurs pour la ou les colonnes (nombre de valeurs distinctes, nombre de doublons, existence de valeurs nulles, histogramme de répartition des valeurs),
– la constitution de l’index (profondeur, nombre de blocs, cluster ratio).
Ces statistiques sont utilisées par l’optimiseur de bases de données pour étudier les différents plans d’exécution utilisables pour une requête.
L’optimiseur (basé sur les coûts / CBO) choisit le meilleur plan d’exécution (le moins coûteux) à partir des données calculées depuis ces statistiques sur, notamment, le nombre de lignes et de blocs de données à brasser à chacune des étapes de ces plans (stratégies d’accès).
Les statistiques sont indispensables au bon calcul des plans d’exécution des requêtes. Il est donc primordial qu’elles soient à jour pour prendre en compte les changements sur les datas et donc sur les indexes, colonnes et tables.
Grâce à l’update statistics (mise à jour des statistiques), l’optimiseur dispose de données fiables pour choisir le plan d’exécution le plus performant pour servir les données aux applications.