STATS_DATE (T-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)Titik akhir analitik SQL di Microsoft FabricWarehouse di Microsoft Fabric

Mengembalikan tanggal pembaruan terbaru untuk statistik pada tabel atau tampilan terindeks.

Untuk informasi selengkapnya tentang memperbarui statistik, lihat Statistik.

Konvensi sintaks transact-SQL

Sintaksis

STATS_DATE ( object_id , stats_id )  

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

object_id
ID tabel atau tampilan terindeks dengan statistik.

stats_id
ID objek statistik.

Jenis Kembalian

Mengembalikan tanggalwaktu pada keberhasilan. Mengembalikan NULL jika blob statistik tidak dibuat.

Keterangan

Fungsi sistem dapat digunakan dalam daftar pemilihan, dalam klausa WHERE, dan di mana saja ekspresi dapat digunakan.

Tanggal pembaruan statistik disimpan dalam objek blob statistik bersama dengan histogram dan vektor kepadatan, bukan dalam metadata. Ketika tidak ada data yang dibaca untuk menghasilkan data statistik, blob statistik tidak dibuat, dan tanggal tidak tersedia. Ini adalah kasus untuk statistik yang difilter yang predikatnya tidak mengembalikan baris apa pun, atau untuk tabel kosong baru.

Jika statistik sesuai dengan indeks, nilai stats_id dalam tampilan katalog sys.stats sama dengan nilai index_id dalam tampilan katalog sys.indexes .

Izin

Memerlukan keanggotaan dalam peran atau izin database tetap db_owner untuk melihat metadata untuk tabel atau tampilan terindeks.

Contoh

J. Mengembalikan tanggal statistik terbaru untuk tabel

Contoh berikut mengembalikan tanggal pembaruan terbaru untuk setiap objek statistik pada Person.Address tabel.

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  

Jika statistik sesuai dengan indeks, nilai stats_id dalam tampilan katalog sys.stats sama dengan nilai index_id dalam tampilan katalog sys.indexes , dan kueri berikut mengembalikan hasil yang sama dengan kueri sebelumnya. Jika statistik tidak sesuai dengan indeks, statistik berada dalam hasil sys.stats tetapi tidak dalam hasil 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  

Contoh: Azure Synapse Analytics and Analytics Platform System (PDW)

B. Pelajari kapan statistik bernama terakhir diperbarui

Contoh berikut membuat statistik pada kolom LastName dari tabel DimCustomer. Kemudian menjalankan kueri untuk memperlihatkan tanggal statistik. Kemudian memunculkan statistik dan menjalankan kueri lagi untuk memperlihatkan tanggal yang diperbarui.

--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. Menampilkan tanggal pembaruan terakhir untuk semua statistik pada tabel

Contoh ini mengembalikan tanggal saat setiap objek statistik pada tabel DimCustomer terakhir diperbarui.

--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  

Jika statistik sesuai dengan indeks, nilai stats_id dalam tampilan katalog sys.stats sama dengan nilai index_id dalam tampilan katalog sys.indexes , dan kueri berikut mengembalikan hasil yang sama dengan kueri sebelumnya. Jika statistik tidak sesuai dengan indeks, statistik berada dalam hasil sys.stats tetapi tidak dalam hasil 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  

Lihat Juga

Fungsi Sistem (Transact-SQL)
PERBARUI STATISTIK (Transact-SQL)
sp_autostats (T-SQL)
Statistik
sys.dm_db_stats_properties (T-SQL)
sys.stats
Statistik di Microsoft Fabric