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.
Şunun için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Microsoft Fabric'teki SQL veritabanı
Dinamik yönetim fonksiyonu, sys.dm_db_stats_properties mevcut veritabanındaki belirtilen veritabanı nesnesi için istatistikleri döndürür.
Bölümlenmiş tablolar için benzer sys.dm_db_incremental_stats_properties'ye de bakınız.
Syntax
sys.dm_db_stats_properties (object_id, stats_id)
Argümanlar
object_id
Mevcut veritabanındaki nesnenin kimliği.
object_id
içseldir.
stats_id
Belirtilen object_idiçin istatistiklerin ID'si. İstatistik ID'yi sys.stats dinamik yönetim görünümünden alabilirsiniz.
stats_id
içseldir.
Tablo geri getirildi
| Sütun adı | Veri türü | Description |
|---|---|---|
object_id |
int | Nesnenin kimliği (tablo veya indeksli 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 makaledeki 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 sütunda geri dönen rows değere 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üzdesini açıkça belirtmeyen istatistik güncelleştirmeleri için kullanılan kalıcı örnek yüzdesi. Değer sıfırsa, bu istatistik için kalıcı örnek yüzdesi ayarlanmamıştır. Geçerlidir: SQL Server 2016 (13.x) SP1 CU4 ve sonraki sürümler |
Açıklamalar
Fonksiyon, 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_idveyastats_idşeklindedirNULL. - Belirtilen nesne bulunmuyor veya bir tabloya ya da indekslenmiş görünüme karşılık gelmiyor.
- Belirtilen istatistik ID, belirtilen nesne kimliği için mevcut istatistiklerle örtüşmez.
- Mevcut kullanıcının istatistik nesnesini görüntüleme iznine sahip değil.
Bu davranış, ve gibi görünümlerdeki sys.dm_db_stats_propertiessys.objectssatırlara çapraz uygulandığında güvenli kullanımını sys.stats 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 verileri oluşturmak için hiçbir veri okunmadığında, istatistik blobu oluşturulmaz, tarih kullanılamaz ve last_updated sütun şeklindedir NULL. Bu koşul, önlem satır döndürmeyen filtrelenmiş istatistikler veya yeni boş tablolar için geçerlidir.
Permissions
İstatistik sütunlarında izinlere sahip SELECT olmalısın, ya da tabloya sahip olmalısın, sabit sunucu rolü, sysadmin sabit veritabanı rolünün veya db_owner sabit veritabanı rolünün üyesi db_ddladmin olmalısın.
Examples
A. Basit örnek
Aşağıdaki örnek, Person.Person veritabanındaki tablo için istatistiklerle AdventureWorks ilgili bilgileri geri getirir.
SELECT * FROM sys.dm_db_stats_properties (object_id('Person.Person'), 1);
B. Bir tablo için tüm istatistiksel özellikleri döndürün
Aşağıdaki örnek, tablo Sales.SalesOrderDetailiçin var olan tüm istatistiklerin özelliklerini geri getirir.
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. Sıklıkla değiştirilen nesneler için döndürme istatistikleri özellikleri
Aşağıdaki örnek, son istatistik güncellemesinden bu yana ön sütunun 1.000'den fazla kez değiştirildiği mevcut veritabanındaki tüm tabloları, indekslenmiş görünümleri ve istatistikleri geri getirir.
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;