Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Analytics-eindpunt in Microsoft Fabric
Magazijn in Microsoft Fabric
SQL-database in Microsoft Fabric
Geeft de datum van de meest recente update terug voor statistieken op een tabel of geïndexeerde weergave.
Voor meer informatie over het bijwerken van statistieken, zie Statistieken.
Transact-SQL syntaxis-conventies
Syntaxis
STATS_DATE ( object_id , stats_id )
Arguments
object_id
ID van de tabel of geïndexeerde weergave met de statistieken.
stats_id
Id van het statistiekenobject.
Retourtypen
Retourneert datum-tijd bij succes. Geeft NULL terug als er geen statistiekblob is gemaakt.
Opmerkingen
Systeemfuncties kunnen worden gebruikt in de selectielijst, in de WHERE-clausule en overal waar een expressie kan worden gebruikt.
De updatedatum van statistieken wordt samen met het histogram en de dichtheidsvector opgeslagen in het blobobject voor statistieken, niet in de metagegevens. Wanneer er geen gegevens worden gelezen om statistische gegevens te genereren, wordt de statistiekblob niet aangemaakt en is de datum niet beschikbaar. Dit geldt voor gefilterde statistieken waarbij het predicaat geen rijen teruggeeft, of voor nieuwe lege tabellen.
Als statistieken overeenkomen met een index, is de stats_id waarde in de sys.stats catalogus weergave dezelfde als de index_id waarde in de sys.indexes catalogusweergave.
Permissions
Vereist lidmaatschap van de db_owner vaste databaserol of toestemming om de metadata van de tabel of geïndexeerde weergave te bekijken.
Voorbeelden
Eén. Geef de data van de meest recente statistieken terug voor een tabel
Het volgende voorbeeld geeft de datum van de meest recente update voor elk statistiekobject in de Person.Address tabel terug.
USE AdventureWorks2022;
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
Als statistieken overeenkomen met een index, is de stats_id waarde in de sys.stats catalogus view dezelfde als de index_id waarde in de sys.indexes catalog view, en de volgende query geeft dezelfde resultaten als de voorgaande query. Als statistieken niet overeenkomen met een index, staan ze in de sys.stats-resultaten maar niet in de sys.indexes-resultaten.
USE AdventureWorks2022;
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
Voorbeelden: Azure Synapse Analytics and Analytics Platform System (PDW)
B. Leer wanneer een benoemde statistiek voor het laatst is bijgewerkt
Het volgende voorbeeld maakt statistieken aan in de kolom Achternaam van de DimCustomer-tabel. Vervolgens wordt er een zoekopdracht uitgevoerd om de datum van de statistieken te tonen. Daarna wordt de statistieken aangepast en de query opnieuw uitgevoerd om de bijgewerkte datum te tonen.
--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. Bekijk de datum van de laatste update voor alle statistieken in een tabel
Dit voorbeeld geeft de datum terug waarop elk statistiekobject in de DimCustomer-tabel voor het laatst is bijgewerkt.
--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
Als statistieken overeenkomen met een index, is de stats_id waarde in de sys.stats catalogus view dezelfde als de index_id waarde in de sys.indexes catalog view, en de volgende query geeft dezelfde resultaten als de voorgaande query. Als statistieken niet overeenkomen met een index, staan ze in de sys.stats-resultaten maar niet in de sys.indexes-resultaten.
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
Zie ook
Systeemfuncties (Transact-SQL)
UPDATESTATISTIEKEN (Transact-SQL)
statistieken
sys.dm_db_stats_properties (Transact-SQL)
sys.stats
Statistiek in Microsoft Fabric