Conseils et formations : vos deux atouts pour réussir !
Accueil > DBA > Messages > Statistiques
Statistiques

 

 

Que sont les statistiques ?

Des sondages sur les données qui permettent à SQLServer de choisir un chemin d'accès le pluis performant possible (en général, celui qui va consommer le moins d'entrées/sorties disque).

Ces sondages peuvent être créés pour des index ou des colonnes.

 

Comment voir les statistiques ?

Depuis 2005 dans les propriétés ci-dessous :

Puis :

 

Et en voici le détail :

 

 

 

On voit que l'histogramme possède un certains nombres de 'pas' qui correspondent aux cases de nos sondeurs politiques…

 

Par ailleurs, la densité donne une idée de la sélectivité de ces valeurs : plus une valeur est sélective (accède à moins de lignes) plus elle sear efficace pour des recherches de données.

 

On voit ici que le couple (SalesOrderID,SalesOrderDetailID) est très sélectif , et pour cause puisqu'il aboutit à une seule ligne ! C'est la clé primaire.

 

A l'inverse, si je crée un index sur une colonne avec énormément de doublons :

 

update Sales.SalesOrderDetail set ModifiedDate =

CONVERT (datetime,'01/01/2009',103)

 

create index x2_OrderDetails on Sales.SalesOrderDetail (ModifiedDate)

go

 

 

 

 

 

On voit que cet index est de très mauvaise qualité : densité 1, c'est la plus mauvaise valeur, on accède à toutes les lignes !

 

Par ailleurs, on voit ici un des concepts fondamentaux de SQLServer : des statistiques sont calculées sur les triplets ModifiedDate, SalesOrderID, SalesOrderDetailID)

Car l'index non clustered va ensuite aller dans le clustered (empilement des index).

 

L'histogramme ne possède ici qu'un pas car il n'ya pas d'autres valeurs à utiliser….

 

 

 

 

UPDATE STATISTICS table | view

[

{

{ index | statistics_name }

| ( { index |statistics_name } [ ,...n ] )

}

]

[ WITH

[

[ FULLSCAN ]

| SAMPLE number { PERCENT | ROWS } ]

| RESAMPLE

| <update_stats_stream_option> [ ,...n ]

]

[ [ , ] [ ALL | COLUMNS | INDEX ]

[ [ , ] NORECOMPUTE ]

] ;

 

 

 

sp_autostats [ @tblname = ] 'table_name'

    [ , [ @flagc = ] 'stats_flag' ]

    [ , [ @indname = ] 'index_name' ]

Arguments

[ @tblname = ] 'table_name'

Nom de la table ou de la vue pour laquelle afficher le paramètre automatique UPDATE STATISTICS. table_name est de type nvarchar(776), sans valeur par défaut. Si la valeur de index_name est fournie, SQL Server modifie le paramètre automatique UPDATE STATISTICS pour cet index.

[ @flagc = ] 'stats_flag'

Spécifie le paramètre automatique UPDATE STATISTICS de la table, de la vue ou de l'index :

ON = activé

OFF = désactivé

L'argument stats_flag est de type varchar(10), avec NULL comme valeur par défaut.

[ @indname = ] 'index_name'

Nom de l'index dont le paramètre automatique UPDATE STATISTICS doit être activé ou désactivé. index_name est de type sysname, avec la valeur NULL par défaut.

Commentaires

Aucun commentaire sur ce message.