Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
Azure SQL Database
Spravovaná instance Azure SQL
Azure Synapse Analytics
Analytics Platform System (PDW)
Koncový bod analýzy SQL v Microsoft Fabric
Sklad v Microsoft Fabric
Databáze SQL v Microsoft Fabric
Vrací datum poslední aktualizace statistik v tabulce nebo indexovaném pohledu.
Pro více informací o aktualizaci statistik viz Statistiky.
Syntaxe
STATS_DATE ( object_id , stats_id )
Arguments
object_id
ID tabulky nebo indexovaného pohledu se statistikami.
stats_id
ID objektu statistiky.
Návratové typy
Vrací datum a čas po úspěchu. Vrátí NULL , pokud nebyl vytvořen statistický blob.
Poznámky
Systémové funkce lze použít v seznamu výběrů, v klauzuli WHERE a kdekoli, kde lze použít výraz.
Datum aktualizace statistiky je uloženo v objektu blob statistiky statistiky společně s histogramem a vektor hustoty, ne v metadatech. Pokud nejsou data čtena k generování statistických dat, statistický blob se nevytváří a datum není k dispozici. To platí pro filtrované statistiky, u kterých predikát nevrací žádné řádky, nebo pro nové prázdné tabulky.
Pokud statistiky odpovídají indexu, hodnota stats_id v katalogu sys.stats je stejná jako hodnota index_id v katalogu sys.indexes .
Povolení
Vyžaduje členství v db_owner pevné databázové roli nebo oprávnění k zobrazení metadat tabulky nebo indexovaného pohledu.
Examples
A. Vraťte data nejnovějších statistik pro tabulku
Následující příklad vrací datum poslední aktualizace pro každý statistický objekt v tabulce 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
Pokud statistiky odpovídají indexu, hodnota stats_id v katalogu sys.stats je stejná jako hodnota index_id v katalogu sys.indexes a následující dotaz vrátí stejné výsledky jako předchozí dotaz. Pokud statistiky neodpovídají indexu, jsou ve výsledcích sys.stats, ale ne ve výsledcích sys.indexes.
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
Příklady: Azure Synapse Analytics a Analytický platformový systém (PDW)
B. Zjistěte, kdy byla pojmenovaná statistika naposledy aktualizována
Následující příklad vytváří statistiky ve sloupci Příjmení v tabulce DimCustomer. Poté spustí dotaz, který ukáže datum těchto statistik. Poté se statistiky aktualizují a dotaz se spustí znovu, aby ukázal datum aktualizace.
--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. Zobrazit datum poslední aktualizace pro všechny statistiky v tabulce
Tento příklad vrací datum, kdy byl každý statistický objekt v tabulce DimCustomer naposledy aktualizován.
--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
Pokud statistiky odpovídají indexu, hodnota stats_id v katalogu sys.stats je stejná jako hodnota index_id v katalogu sys.indexes a následující dotaz vrátí stejné výsledky jako předchozí dotaz. Pokud statistiky neodpovídají indexu, jsou ve výsledcích sys.stats, ale ne ve výsledcích sys.indexes.
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
Viz také
Systémové funkce (Transact-SQL)
UPDATE STATISTICS (Transact-SQL)
Statistika
sys.dm_db_stats_properties (Transact-SQL)
sys.stats
Statistiky v Microsoft Fabric