Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Microsoft Fabric'te SQL veritabanı
Mevcut SQL Server veritabanındaki belirtilen veritabanı nesnesi (tablo veya indekslenmiş görünüm) için istatistiklerin özelliklerini döndürür. Bölümlenmiş tablolar için benzer sys.dm_db_incremental_stats_properties'a bakınız.
Sözdizimi
sys.dm_db_stats_properties (object_id, stats_id)
Arguments
object_id
Mevcut veritabanındaki nesnenin kimliği ve istatistiklerinden birinin özelliklerinin istendiği kimdir.
object_idint.
stats_id
Belirtilen object_id için istatistiklerin kimliğidir. İstatistik kimliği sys.stats dinamik yönetim görünümünden alınabilir.
stats_idint.
Döndürülen Tablo
| Sütun adı | Veri türü | Description |
|---|---|---|
| object_id | int | İstatistik nesnesinin özelliklerinin döndürüleceği nesnenin kimliği (tablo veya dizinli görünüm). |
| stats_id | int | İstatistik nesnesinin kimliği. Tablo veya dizinli görünüm içinde benzersizdir. Daha fazla bilgi için bkz. sys.stats (Transact-SQL). |
| last_updated | datetime2 | İstatistik nesnesinin en son güncellendiği tarih ve saat. Daha fazla bilgi için bu sayfadaki Açıklamalar bölümüne bakın. |
| rows | bigint | İstatistikler en son güncellendiğinde tablodaki veya indekslenmiş görünümdeki toplam satır sayısı. İstatistikler filtrelenmişse veya filtrelenmiş bir dizine karşılık geliyorsa, satır sayısı tablodaki satır sayısından az olabilir. |
| rows_sampled | bigint | İstatistik hesaplamaları için örneklenen toplam satır sayısı. |
| steps | int | Histogramdaki adım sayısı. Daha fazla bilgi için bkz. DBCC SHOW_STATISTICS (Transact-SQL). |
| unfiltered_rows | bigint | Filtre ifadesi uygulanmadan önce tablodaki toplam satır sayısı (filtrelenmiş istatistikler için). İstatistikler filtrelenmezse, unfiltered_rows satır sütunundaki değer döndürüşüne eşittir. |
| modification_counter | bigint | Istatistiklerin son güncellendiğinden bu yana önde gelen istatistik sütunu (histogramın inşa edildiği sütun) toplam değişiklik sayısı. Bellek optimize edilmiş tablolar: SQL Server 2016 (13.x) ile başlayacak ve Azure SQL Veritabanı'nda bu sütun, istatistiklerin son güncellendiğinden veya veritabanı yeniden başlatıldığından bu yana tablo için toplam değişiklik sayısını içerir. |
| persisted_sample_percent | float | Örnekleme yüzdesi açıkça belirtilmeyen istatistiksel güncellemeler için kullanılan kalıcı örneklem yüzdesi. Değer sıfırsa, bu istatistik için kalıcı örnek yüzdesi ayarlanmamıştır. Şunlar için geçerlidir: SQL Server 2016 (13.x) SP1 CU4 |
Açıklamalar
sys.dm_db_stats_properties , aşağıdaki koşullardan herhangi biri altında boş bir satır kümesi döndürür:
- object_id veya stats_id NULL'dur.
- Belirtilen nesne bulunmaz veya tablo veya indekslenmiş görünüme karşılık gelmez.
- Belirtilen istatistikler kimliği, belirtilen nesne kimliği için mevcut istatistiklerle örtüşmez.
- Mevcut kullanıcının istatistikler nesnesini görüntüleme iznine sahip değildir.
Bu davranış, sys.objects ve sys.stats gibi görünümlerdeki satırlara çapraz uygulandığında sys.dm_db_stats_properties'nin güvenli kullanımını sağlar.
İstatistik güncelleştirme tarihi, meta verilerde değil histogram ve yoğunluk vektörüyle birlikte istatistik blob nesnesinde depolanır. İstatistik veri oluşturmak için veri okunmadığında, istatistik blobu oluşturulmaz, tarih kullanılabilir değildir ve last_updated sütunu NULL olur. Bu, önlemin satır döndürmediği filtrelenmiş istatistikler veya yeni boş tablolar için geçerlidir.
Permissions
Kullanıcının istatistik sütunlarında seçme izinlerine sahip olmasını veya tabloya sahip olmasını ya da sabit sunucu rolü, db_owner sabit veritabanı rolünü veya db_ddladmin sabit veritabanı rolünü bir üyesi sysadmin olmasını gerektirir.
Örnekler
A. Basit örnek
Aşağıdaki örnek, AdventureWorks veritabanındaki Person.Person tablonun istatistiklerini geri getirir.
SELECT * FROM sys.dm_db_stats_properties (object_id('Person.Person'), 1);
B. Bir tablo için tüm istatistik özelliklerini döndürmek
Aşağıdaki örnek, TEST tablosu için var olan tüm istatistiklerin özelliklerini döndürür.
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. Sıkça değiştirilen nesneler için istatistiksel özelliklerin geri verilmesi
Aşağıdaki örnek, son istatistik güncellemesinden bu yana ön sütunun 1000'den fazla kez değiştirildiği mevcut veritabanındaki tüm tabloları, indekslenmiş görünümleri ve istatistikleri geri getirir.
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;
Ayrıca Bkz.
DBCC SHOW_STATISTICS (Transact-SQL)
sys.stats (Transact-SQL)
Nesneyle İlgili Dinamik Yönetim Görünümleri ve İşlevleri (Transact-SQL)
Dinamik Yönetim Görünümleri ve İşlevleri (Transact-SQL)
sys.dm_db_incremental_stats_properties (Transact-SQL)
sys.dm_db_stats_histogram (Transact-SQL)