Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analysplattformssystem (PDW)
SQL-analysslutpunkt i Microsoft Fabric
Lager i Microsoft Fabric
SQL-databas i Microsoft Fabric
Returnerar datumet för den senaste uppdateringen för statistik i en tabell eller indexerad vy.
För mer information om hur man uppdaterar statistik, se Statistik.
Transact-SQL syntaxkonventioner
Syntax
STATS_DATE ( object_id , stats_id )
Arguments
object_id
ID för tabellen eller indexerad vy med statistiken.
stats_id
ID för statistikobjektet.
Returtyper
Returnerar datum och tid vid framgång. Returnerar NULL om en statistikblob inte skapades.
Anmärkningar
Systemfunktioner kan användas i select-listan, i WHERE-klausulen och var som helst ett uttryck kan användas.
Uppdateringsdatumet för statistik lagras i -statistikblobobjektet tillsammans med histogrammet och densitetsvektor, inte i metadata. När ingen data läses för att generera statistikdata skapas inte statistikblobben och datumet är inte tillgängligt. Detta gäller för filtrerad statistik där predikatet inte returnerar några rader, eller för nya tomma tabeller.
Om statistik motsvarar ett index är värdet stats_id i sys.stats-katalogvyn detsamma som index_id-värdet i sys.indexes-katalogvyn .
Permissions
Kräver medlemskap i den db_owner fasta databasrollen eller behörighet för att visa metadata för tabellen eller den indexerade vyn.
Examples
A. Returnera datumen för de senaste statistiken för en tabell
Följande exempel återger datumet för den senaste uppdateringen för varje statistikobjekt i tabellen Person.Address .
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
Om statistik motsvarar ett index är värdet stats_id i sys.stats-katalogvyn detsamma som index_id-värdet i sys.indexes-katalogvyn , och följande fråga ger samma resultat som föregående fråga. Om statistik inte motsvarar ett index finns den i sys.stats-resultaten men inte i 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
Exempel: Azure Synapse Analytics and Analytics Platform System (PDW)
B. Lär dig när en namngiven statistik senast uppdaterades
Följande exempel skapar statistik i kolumnen Efternamn i tabellen DimCustomer. Den kör sedan en fråga för att visa datumet för statistiken. Sedan ändrar den statistiken och kör frågan igen för att visa det uppdaterade datumet.
--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. Visa datumet för den senaste uppdateringen för all statistik i en tabell
Detta exempel returnerar datumet för när varje statistikobjekt i DimCustomer-tabellen senast uppdaterades.
--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
Om statistik motsvarar ett index är värdet stats_id i sys.stats-katalogvyn detsamma som index_id-värdet i sys.indexes-katalogvyn , och följande fråga ger samma resultat som föregående fråga. Om statistik inte motsvarar ett index finns den i sys.stats-resultaten men inte i 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
Se även
Systemfunktioner (Transact-SQL)
UPPDATERINGSSTATISTIK (Transact-SQL)
sp_autostats (Transact-SQL)
Statistik
sys.dm_db_stats_properties (Transact-SQL)
sys.stats
Statistik i Microsoft Fabric