Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Database SQL di Microsoft Fabric
Fungsi sys.dm_db_stats_properties manajemen dinamis mengembalikan statistik untuk objek database yang ditentukan dalam database saat ini.
Untuk tabel yang dipartisi, lihat juga sys.dm_db_incremental_stats_properties serupa.
Syntax
sys.dm_db_stats_properties (object_id, stats_id)
Argumen
object_id
ID objek dalam database saat ini.
object_id adalah int.
stats_id
ID statistik untuk .object_id Anda bisa mendapatkan ID statistik dari tampilan manajemen dinamis sys.stats .
stats_id adalah int.
Tabel dikembalikan
| Nama kolom | Jenis data | Deskripsi |
|---|---|---|
object_id |
int | ID objek (tabel atau tampilan terindeks). |
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 Catatan di artikel ini. |
rows |
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. |
steps |
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, sama dengan nilai yang ditampilkan di unfiltered_rows kolom. rows |
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 dan versi yang lebih baru |
Keterangan
Fungsi ini sys.dm_db_stats_properties mengembalikan kumpulan baris kosong di bawah salah satu kondisi berikut:
-
object_idataustats_idadalahNULL. - Objek yang ditentukan tidak ditemukan atau tidak sesuai dengan tabel atau tampilan yang diindeks.
- 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 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 last_updated kolomnya adalah NULL. Kondisi ini berlaku untuk statistik yang difilter yang predikatnya tidak mengembalikan baris apa pun, atau untuk tabel kosong baru.
Permissions
Anda memerlukan SELECT izin pada kolom statistik, atau Anda harus memiliki tabel, atau menjadi anggota sysadmin peran server tetap, db_owner peran database tetap, atau db_ddladmin peran database tetap.
Examples
A. Contoh sederhana
Contoh berikut mengembalikan informasi tentang statistik untuk Person.Person tabel dalam AdventureWorks database.
SELECT * FROM sys.dm_db_stats_properties (object_id('Person.Person'), 1);
B. Mengembalikan semua properti statistik untuk tabel
Contoh berikut mengembalikan properti semua statistik yang ada untuk tabel Sales.SalesOrderDetail.
SELECT
OBJECT_SCHEMA_NAME(stat.object_id) AS schema_name,
OBJECT_NAME(stat.object_id) AS table_name,
sp.stats_id,
stat.[name],
stat.filter_definition,
sp.last_updated,
sp.[rows],
sp.rows_sampled,
sp.steps,
sp.unfiltered_rows,
sp.modification_counter
FROM sys.stats AS stat
OUTER APPLY sys.dm_db_stats_properties(stat.object_id, stat.stats_id) AS sp
WHERE stat.object_id = OBJECT_ID(N'Sales.SalesOrderDetail')
C. Mengembalikan properti statistik untuk objek yang sering dimodifikasi
Contoh berikut mengembalikan semua tabel, tampilan yang diindeks, dan statistik dalam database saat ini yang kolom terdepan dimodifikasi lebih dari 1.000 kali sejak pembaruan statistik terakhir.
SELECT
OBJECT_SCHEMA_NAME(obj.[object_id]) AS schema_name,
obj.[name],
stat.[name],
stat.stats_id,
sp.last_updated,
sp.modification_counter
FROM sys.objects AS obj
INNER JOIN sys.stats AS stat ON stat.object_id = obj.object_id
OUTER APPLY sys.dm_db_stats_properties(stat.object_id, stat.stats_id) AS sp
WHERE sp.modification_counter > 1000;