sys.dm_db_stats_properties (T-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Mengembalikan properti statistik untuk objek database yang ditentukan (tabel atau tampilan terindeks) dalam database SQL Server saat ini. Untuk tabel yang dipartisi, lihat sys.dm_db_incremental_stats_properties serupa.

Sintaks

sys.dm_db_stats_properties (object_id, stats_id)  

Argumen

object_id
Adalah ID objek dalam database saat ini yang properti salah satu statistiknya diminta. object_id int.

stats_id
Adalah ID statistik untuk object_id yang ditentukan. ID statistik dapat diperoleh dari tampilan manajemen dinamis sys.stats . stats_id int.

Tabel Dikembalikan

Nama kolom Jenis data Deskripsi
object_id int ID objek (tabel atau tampilan terindeks) untuk mengembalikan properti objek statistik.
stats_id int ID objek statistik. Unik dalam tabel atau tampilan terindeks. Untuk informasi selengkapnya, lihat sys.stats (Transact-SQL).
last_updated datetime2 Tanggal dan waktu objek statistik terakhir diperbarui. Untuk informasi selengkapnya, lihat bagian Keterangan di halaman ini.
baris bigint Jumlah total baris dalam tabel atau tampilan terindeks saat statistik terakhir diperbarui. Jika statistik difilter atau sesuai dengan indeks yang difilter, jumlah baris mungkin kurang dari jumlah baris dalam tabel.
rows_sampled bigint Jumlah total baris yang diambil sampelnya untuk perhitungan statistik.
langkah-langkah int Jumlah langkah dalam histogram. Untuk informasi selengkapnya, lihat SHOW_STATISTICS DBCC (Transact-SQL).
unfiltered_rows bigint Jumlah total baris dalam tabel sebelum menerapkan ekspresi filter (untuk statistik yang difilter). Jika statistik tidak difilter, unfiltered_rows sama dengan nilai yang dikembalikan di kolom baris.
modification_counter bigint Jumlah total modifikasi untuk kolom statistik utama (kolom tempat histogram dibangun) sejak terakhir kali statistik diperbarui.

Tabel yang dioptimalkan memori: memulai SQL Server 2016 (13.x) dan di Azure SQL Database kolom ini berisi: jumlah total modifikasi untuk tabel sejak terakhir kali statistik diperbarui atau database dimulai ulang.
persisted_sample_percent float Persentase sampel persisten yang digunakan untuk pembaruan statistik yang tidak secara eksplisit menentukan persentase pengambilan sampel. Jika nilainya nol, maka tidak ada persentase sampel yang dipertahankan yang ditetapkan untuk statistik ini.

Berlaku untuk: SQL Server 2016 (13.x) SP1 CU4

Keterangan

sys.dm_db_stats_properties mengembalikan set baris kosong dalam salah satu kondisi berikut:

  • object_id atau stats_id ADALAH NULL.
  • Objek yang ditentukan tidak ditemukan atau tidak sesuai dengan tabel atau tampilan terindeks.
  • ID statistik yang ditentukan tidak sesuai dengan statistik yang ada untuk ID objek yang ditentukan.
  • Pengguna saat ini tidak memiliki izin untuk melihat objek statistik.

Perilaku ini memungkinkan penggunaan sys.dm_db_stats_properties yang aman saat diterapkan silang ke baris dalam tampilan seperti sys.objects dan sys.stats.

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, tanggal tidak tersedia, dan kolom last_updated adalah NULL. Ini adalah kasus untuk statistik yang difilter yang predikatnya tidak mengembalikan baris apa pun, atau untuk tabel kosong baru.

Izin

Mengharuskan pengguna memilih izin pada kolom statistik atau pengguna memiliki tabel atau pengguna adalah anggota sysadmin peran server tetap, db_owner peran database tetap, atau db_ddladmin peran database tetap.

Contoh

J. Contoh sederhana

Contoh berikut mengembalikan statistik untuk Person.Person tabel dalam database AdventureWorks.

SELECT * FROM sys.dm_db_stats_properties (object_id('Person.Person'), 1);

B. Mengembalikan semua properti statistik untuk tabel

Contoh berikut mengembalikan properti dari semua statistik yang ada untuk pengujian tabel.

SELECT sp.stats_id, name, filter_definition, last_updated, rows, rows_sampled, steps, unfiltered_rows, modification_counter   
FROM sys.stats AS stat   
CROSS APPLY sys.dm_db_stats_properties(stat.object_id, stat.stats_id) AS sp  
WHERE stat.object_id = object_id('TEST');  

C. Mengembalikan properti statistik untuk objek yang sering dimodifikasi

Contoh berikut mengembalikan semua tabel, tampilan terindeks, dan statistik dalam database saat ini yang kolom di depannya dimodifikasi lebih dari 1000 kali sejak pembaruan statistik terakhir.

SELECT obj.name, obj.object_id, stat.name, stat.stats_id, last_updated, modification_counter  
FROM sys.objects AS obj   
INNER JOIN sys.stats AS stat ON stat.object_id = obj.object_id  
CROSS APPLY sys.dm_db_stats_properties(stat.object_id, stat.stats_id) AS sp  
WHERE modification_counter > 1000;  

Lihat Juga

DBCC SHOW_STATISTICS (Transact-SQL)
sys.stats (Transact-SQL)
Tampilan dan Fungsi Manajemen Dinamis Terkait Objek (Transact-SQL)
Tampilan dan Fungsi Manajemen Dinamis (Transact-SQL)
sys.dm_db_incremental_stats_properties (T-SQL)
sys.dm_db_stats_histogram (T-SQL)