Megosztás a következőn keresztül:


STATS_DATE (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsElemzési platformrendszer (PDW)SQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

A legfrissebb statisztikai frissítés dátumát adja vissza egy táblázaton vagy indexelt nézeten.

További információért a statisztikák frissítéséről lásd : Statisztikák.

Transact-SQL szintaxis konvenciók

Szemantika

STATS_DATE ( object_id , stats_id )  

Arguments

object_id
A táblázat azonosítója vagy az indexelt nézet a statisztikákkal.

stats_id
A statisztikai objektum azonosítója.

Visszatérési típusok

A siker után visszaadja a dátumidőt . NULL értéket ad vissza, ha nem hoztak létre statisztikai tömböt.

Megjegyzések

A rendszerfüggvények használhatók a kiválasztási listában, a WHERE záradékban, és bárhol, ahol kifejezés használható.

A statisztikai frissítés dátuma a statisztikai blobobjektumban a hisztogram és sűrűségvektorvan tárolva, nem a metaadatokban. Ha nem olvasnak adatokat statisztikai adatok generálásához, a statisztikai folb nem jön létre, és a dátum nem elérhető. Ez igaz szűrt statisztikákra, amelyeknél a predikátum nem ad sorokat, vagy új üres táblákra.

Ha a statisztikák indexnek felelnek meg, a sys.stats katalógusnézetben a stats_id érték megegyezik a sys.indexeskatalógusnézetbeli index_id értékével.

Permissions

Tagság szükséges a db_owner fix adatbázis szerepében, vagy engedélyt a tábla vagy indexelt nézet metaadatainak megtekintéséhez.

Példák

A. Adja vissza a legfrissebb statisztikák dátumait egy táblázathoz

A következő példa adja vissza a legfrissebb frissítés dátumát minden statisztikai objektumra a Person.Address táblán.

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  

Ha a statisztikák indexnek felelnek meg, a sys.stats katalógusnézetben a stats_id érték megegyezik a sys.indexeskatalógusnézetben lévő index_id értékével, és a következő lekérdezés ugyanazt az eredményt adja vissza, mint az előző lekérdezés. Ha a statisztikák nem felelnek meg egy indexnek, akkor a sys.stats eredményeiben vannak, de a sys.indexes eredményeiben nem.

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éldák: Azure Synapse Analytics and Analytics Platform System (PDW)

B. Tudd meg, mikor frissítettek utoljára egy nevelt statisztikát

Az alábbi példa statisztikákat hoz létre a DimCustomer tábla Vezetéknév oszlopában. Ezután lefuttat egy lekérdezést, hogy megmutassa a statisztikák dátumát. Ezután lenyomja a statisztikákat, és újra lefuttatja a lekérdezést, hogy megmutassa a frissített dátumot.

--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. Tekintse meg az utolsó frissítés dátumát az összes statisztikához egy táblázaton

Ez a példa adja vissza azt a dátumot, amikor minden statisztikai objektumot utoljára frissítettek a DimCustomer táblá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  

Ha a statisztikák indexnek felelnek meg, a sys.stats katalógusnézetben a stats_id érték megegyezik a sys.indexeskatalógusnézetben lévő index_id értékével, és a következő lekérdezés ugyanazt az eredményt adja vissza, mint az előző lekérdezés. Ha a statisztikák nem felelnek meg egy indexnek, akkor a sys.stats eredményeiben vannak, de a sys.indexes eredményeiben nem.

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  

Lásd még:

Rendszerfunkciók (Transact-SQL)
UPDATE STATISTICS (Transact-SQL)
sp_autostats (Transact-SQL)
Statisztika
sys.dm_db_stats_properties (Transact-SQL)
sys.stats
Statisztikák a Microsoft Fabric-ben