Partager via


sys.dm_db_stats_properties (Transact-SQL)

Retourne les propriétés de statistiques de l'objet de base de données spécifié (table ou vue indexée) dans la base de données SQL Server active.

[!REMARQUE]

L'objet de gestion dynamique, sys.dm_db_stats_properties, est disponible dans SQL Server 2012 à partir de Service Pack 1 et dans SQL Server 2008 R2 à partir de Service Pack 2.

Syntaxe

sys.dm_db_stats_properties (object_id, stats_id)

Arguments

  • object_id
    ID de l'objet dans la base de données active dont les propriétés d'une de ses statistiques sont demandées. object_id est de type int.

  • stats_id
    ID des statistiques pour l'object_id spécifié. L'ID des statistiques peut être obtenu à partir de la vue de gestion dynamique sys.stats. stats_id est de type int.

Table retournée

Nom de la colonne

Type de données

Description

object_id

int

ID de l'objet (table ou vue indexée) pour lequel retourner les propriétés de l'objet de statistiques.

stats_id

int

ID de l'objet de statistiques. Unique dans la table ou la vue indexée. Pour plus d'informations, consultez sys.stats (Transact-SQL).

last_updated

datetime2

Date et heure de la dernière mise à jour de l'objet de statistiques.

rows

bigint

Nombre total de lignes dans la table ou la vue indexée au moment de la dernière mise à jour des statistiques. Si les statistiques sont filtrées ou correspondent à un index filtré, le nombre de lignes peut être inférieur à celui de la table.

rows_sampled

bigint

Nombre total de lignes échantillonnées pour le calcul des statistiques.

steps

int

Nombre d'étapes dans l'histogramme. Pour plus d'informations, consultez DBCC SHOW_STATISTICS (Transact-SQL).

unfiltered_rows

bigint

Nombre total de lignes dans la table avant l'application de l'expression de filtre (pour les statistiques filtrées). Si les statistiques ne sont pas filtrées, unfiltered_rows est égal à la valeur retournée dans la colonne rows.

modification_counter

bigint

Nombre total de modifications de la première colonne de statistiques (la colonne sur laquelle l'histogramme est construit) depuis la dernière mise à jour des statistiques.

Notes

sys.dm_db_stats_properties retourne un ensemble de lignes vide si l'une des conditions suivantes est remplie :

  • object_id ou stats_id a la valeur NULL.

  • L'objet spécifié est introuvable ou ne correspond à aucune table ou vue indexée.

  • L'ID de statistiques spécifié ne correspond pas à des statistiques existantes pour l'ID d'objet spécifié.

  • L'utilisateur actuel n'est pas autorisé à afficher l'objet de statistiques.

Ce comportement permet d'utiliser en toute sécurité sys.dm_db_stats_properties lorsqu'il est appliqué de façon croisée aux lignes de vues telles que sys.objects et sys.stats.

Autorisations

L'utilisateur doit avoir sélectionné des autorisations sur les colonnes de statistiques, ou bien il doit être le propriétaire de la table, ou encore il doit être membre du rôle serveur fixe sysadmin, du rôle de base de données fixe db_owner ou du rôle de base de données fixe db_ddladmin.

Exemples

A.Renvoi de toutes les propriétés de statistiques pour une table

L'exemple suivant retourne les propriétés de toutes les statistiques existantes pour la table TEST.

SELECT
    sp.stats_id, name, filter_definition, last_updated, rows, rows_sampled, steps, unfiltered_rows, modification_counter 
FROM sys.stats AS stat 
CROSS APPLY sys.dm_db_stats_properties(stat.object_id, stat.stats_id) AS sp
WHERE stat.object_id = object_id('TEST');

B.Renvoi de toutes les propriétés de statistiques pour les objets modifiés fréquemment

L'exemple suivant retourne toutes les tables, les vues indexées et les statistiques de la base de données active, dans lesquelles la première colonne a été modifiée plus de 1000 fois depuis la dernière mise à jour des statistiques.

SELECT 
    obj.name, obj.object_id, stat.name, stat.stats_id, last_updated, modification_counter
FROM sys.objects AS obj 
JOIN sys.stats stat ON stat.object_id = obj.object_id
CROSS APPLY sys.dm_db_stats_properties(stat.object_id, stat.stats_id) AS sp
WHERE modification_counter > 1000;

Voir aussi

Référence

DBCC SHOW_STATISTICS (Transact-SQL)

sys.stats (Transact-SQL)

Fonctions et vues de gestion dynamique relatives aux objets (Transact-SQL)

Fonctions et vues de gestion dynamique (Transact-SQL)