STATS_DATE (Transact-SQL)STATS_DATE (Transact-SQL)

CETTE RUBRIQUE S’APPLIQUE À :ouiSQL Server (à partir de la version 2008)ouiAzure SQL DatabaseouiAzure SQL Data Warehouse ouiParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL Server (starting with 2008)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

Retourne la date de la mise à jour la plus récente des statistiques pour une table ou vue indexée.Returns the date of the most recent update for statistics on a table or indexed view.

Pour plus d’informations sur la mise à jour des statistiques, consultez statistiques.For more information about updating statistics, see Statistics.

Icône de lien de rubrique Conventions de la syntaxe Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SyntaxeSyntax

STATS_DATE ( object_id , stats_id )  

ArgumentsArguments

object_idobject_id
ID de la table ou vue indexée avec les statistiques.ID of the table or indexed view with the statistics.

stats_idstats_id
ID de l'objet de statistiques.ID of the statistics object.

Types de retourReturn Types

Retourne datetime en cas de réussite.Returns datetime on success. Retourne NULL si un objet blob de statistiques n’a pas été créé.Returns NULL if a statistics blob was not created.

Notes Remarks

Les fonctions système peuvent être utilisées dans la liste de sélection, dans la clause WHERE et partout où une expression peut être utilisée.System functions can be used in the select list, in the WHERE clause, and anywhere an expression can be used.

Date de mise à jour des statistiques est stocké dans le objet blob de statistiques avec la histogramme et vecteur de densité, et non dans les métadonnées.Statistics update date is stored in the statistics blob object together with the histogram and density vector, not in the metadata. Lorsqu’aucune donnée n’est en lecture pour générer des données de statistiques, l’objet blob de statistiques n’est pas créé, et la date n’est pas disponible.When no data is read to generate statistics data, the statistics blob is not created, and the date is not available. C’est le cas pour les statistiques filtrées pour le prédicat ne retourne pas des lignes, ou pour les nouveaux tableaux vides.This is the case for filtered statistics for which the predicate does not return any rows, or for new empty tables.

Si les statistiques correspondent à un index, le stats_id valeur dans le sys.stats affichage catalogue est le même que le index_id valeur dans le sys.indexes affichage catalogue.If statistics correspond to an index, the stats_id value in the sys.stats catalog view is the same as the index_id value in the sys.indexes catalog view.

AutorisationsPermissions

Requiert l'appartenance au rôle de base de données fixe db_owner ou l'autorisation d'afficher les métadonnées pour la table ou vue indexée.Requires membership in the db_owner fixed database role or permission to view the metadata for the table or indexed view.

ExemplesExamples

A.A. Retourner les dates des statistiques les plus récentes pour une tableReturn the dates of the most recent statistics for a table

L'exemple suivant retourne la date de la mise à jour la plus récente de chaque objet de statistiques dans la table Person.Address.The following example returns the date of the most recent update for each statistics object on the Person.Address table.

USE AdventureWorks2012;  
GO  
SELECT name AS stats_name,   
    STATS_DATE(object_id, stats_id) AS statistics_update_date  
FROM sys.stats   
WHERE object_id = OBJECT_ID('Person.Address');  
GO  

Si les statistiques correspondent à un index, le stats_id valeur dans le sys.stats affichage catalogue est le même que le index_id valeur dans le sys.indexes affichage catalogue et la requête suivante retourne les mêmes résultats que la requête précédente.If statistics correspond to an index, the stats_id value in the sys.stats catalog view is the same as the index_id value in the sys.indexes catalog view, and the following query returns the same results as the preceding query. Si les statistiques ne correspondent pas à un index, elles figurent dans les résultats sys.stats mais pas dans les résultats sys.indexes.If statistics do not correspond to an index, they are in the sys.stats results but not in the sys.indexes results.

USE AdventureWorks2012;  
GO  
SELECT name AS index_name,   
    STATS_DATE(object_id, index_id) AS statistics_update_date  
FROM sys.indexes   
WHERE object_id = OBJECT_ID('Person.Address');  
GO  

Exemples : Azure SQL Data WarehouseAzure SQL Data Warehouse et Parallel Data WarehouseParallel Data WarehouseExamples: Azure SQL Data WarehouseAzure SQL Data Warehouse and Parallel Data WarehouseParallel Data Warehouse

B.B. Savoir quand une statistique nommée a été modifiéeLearn when a named statistics was last updated

L’exemple suivant crée des statistiques sur la colonne LastName de la table DimCustomer.The following example creates statistics on the LastName column of the DimCustomer table. Il exécute ensuite une requête pour afficher la date des statistiques.It then runs a query to show the date of the statistics. Puis il mises à jour les statistiques et exécute la requête pour afficher la date de mise à jour.Then it udpates the statistics and runs the query again to show the updated date.

--First, create a statistics object  
USE AdventureWorksPDW2012;  
GO  
CREATE STATISTICS Customer_LastName_Stats  
ON AdventureWorksPDW2012.dbo.DimCustomer (LastName)  
WITH SAMPLE 50 PERCENT;  
GO  

--Return the date when Customer_LastName_Stats was last updated  
USE AdventureWorksPDW2012;  
GO  
SELECT stats_id, name AS stats_name,   
    STATS_DATE(object_id, stats_id) AS statistics_date  
FROM sys.stats s  
WHERE s.object_id = OBJECT_ID('dbo.DimCustomer')  
    AND s.name = 'Customer_LastName_Stats';  
GO  

--Update Customer_LastName_Stats so it will have a different timestamp in the next query  
GO  
UPDATE STATISTICS dbo.dimCustomer (Customer_LastName_Stats);  

--Return the date when Customer_LastName_Stats was last updated.  
SELECT stats_id, name AS stats_name,   
    STATS_DATE(object_id, stats_id) AS statistics_date  
FROM sys.stats s  
WHERE s.object_id = OBJECT_ID('dbo.DimCustomer')  
    AND s.name = 'Customer_LastName_Stats';  
GO    

C.C. Afficher la date de la dernière mise à jour de toutes les statistiques sur une tableView the date of the last update for all statistics on a table

Cet exemple retourne la date de lors de la dernière mise à jour de chaque objet de statistiques sur la table DimCustomer.This example returns the date for when each statistics object on the DimCustomer table was last updated.

--Return the dates all statistics on the table were last updated.  
SELECT stats_id, name AS stats_name,   
    STATS_DATE(object_id, stats_id) AS statistics_date  
FROM sys.stats s  
WHERE s.object_id = OBJECT_ID('dbo.DimCustomer');  
GO  

Si les statistiques correspondent à un index, le stats_id valeur dans le sys.stats affichage catalogue est le même que le index_id valeur dans le sys.indexes affichage catalogue et la requête suivante retourne les mêmes résultats que la requête précédente.If statistics correspond to an index, the stats_id value in the sys.stats catalog view is the same as the index_id value in the sys.indexes catalog view, and the following query returns the same results as the preceding query. Si les statistiques ne correspondent pas à un index, elles figurent dans les résultats sys.stats mais pas dans les résultats sys.indexes.If statistics do not correspond to an index, they are in the sys.stats results but not in the sys.indexes results.

USE AdventureWorksPDW2012;  
GO  
SELECT name AS index_name,   
    STATS_DATE(object_id, index_id) AS statistics_update_date  
FROM sys.indexes   
WHERE object_id = OBJECT_ID('dbo.DimCustomer');  
GO  

Voir aussiSee Also

Fonctions système (Transact-SQL) System Functions (Transact-SQL)
UPDATE STATISTICS (Transact-SQL) UPDATE STATISTICS (Transact-SQL)
sp_autostats ( Transact-SQL ) sp_autostats (Transact-SQL)
Statistiques Statistics
sys.dm_db_stats_properties (Transact-SQL) sys.dm_db_stats_properties (Transact-SQL)
sys.statssys.stats