Udostępnij za pomocą


sys.dm_db_stats_properties (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBaza danych SQL w usłudze Microsoft Fabric

Zwraca właściwości statystyk dla określonego obiektu bazy danych (tabeli lub widoku indeksowego) w aktualnej bazie SQL Server. W przypadku tabel partycjonowanych zobacz podobne sys.dm_db_incremental_stats_properties.

Składnia

sys.dm_db_stats_properties (object_id, stats_id)  

Arguments

object_id
To identyfikator obiektu w aktualnej bazie danych, dla którego żądane są właściwości jednej z jej statystyk. object_id jest int.

stats_id
To identyfikator statystyk dla określonego object_id. Identyfikator statystyk można uzyskać z dynamicznego widoku zarządzania sys.stats . stats_id jest int.

Zwracana tabela

Nazwa kolumny Typ danych Description
object_id int Identyfikator obiektu (tabeli lub widoku indeksowanego), dla którego mają być zwracane właściwości obiektu statystyk.
stats_id int Identyfikator obiektu statystyk. Jest unikatowy w widoku tabeli lub indeksowanym. Aby uzyskać więcej informacji, zobacz sys.stats (Transact-SQL).
last_updated datetime2 Data i godzina ostatniej aktualizacji obiektu statystyk. Aby uzyskać więcej informacji, zobacz sekcję Uwagi na tej stronie.
rows bigint Łączna liczba wierszy w tabeli lub widoku indeksowanym w momencie ostatniej aktualizacji statystyk. Jeśli statystyki są filtrowane lub odpowiadają indeksowi filtrowanemu, liczba wierszy może być mniejsza niż liczba wierszy w tabeli.
rows_sampled bigint Łączna liczba wierszy próbkowanych na potrzeby obliczeń statystycznych.
steps int Liczba kroków w histogramie. Aby uzyskać więcej informacji, zobacz DBCC SHOW_STATISTICS (Transact-SQL).
unfiltered_rows bigint Całkowita liczba wierszy w tabeli przed zastosowaniem wyrażenia filtrującego (dla statystyk filtrowanych). Jeśli statystyki nie są filtrowane, unfiltered_rows jest równe wartości zwróconym w kolumnie wierszy.
modification_counter bigint Łączna liczba modyfikacji wiodącej kolumny statystyk (kolumny, na której zbudowany jest histogram) od ostatniej aktualizacji statystyk.

Tabele zoptymalizowane pod pamięć: począwszy od SQL Server 2016 (13.x) i w Azure SQL Database, ta kolumna zawiera: łączną liczbę modyfikacji tabeli od ostatniej aktualizacji statystyk lub ponownego uruchomienia bazy danych.
persisted_sample_percent float Trwały procent próby używany do aktualizacji statystyk, które nie określają wyraźnie procentu próbki. Jeśli wartość jest równa zero, dla tej statystyki nie ustawiono utrwalonej wartości procentowej próbki.

Dotyczy do: SQL Server 2016 (13.x) SP1 CU4

Uwagi

sys.dm_db_stats_properties zwraca pusty zestaw wierszy pod dowolnymi z następujących warunków:

  • object_id lub stats_id jest NULL.
  • Określony obiekt nie jest odnaleziony lub nie odpowiada tabeli lub widokowi indeksowanego.
  • Określony identyfikator statystyk nie odpowiada istniejącym statystykom dla określonego ID obiektu.
  • Obecny użytkownik nie ma uprawnień do przeglądania obiektu statystyk.

To zachowanie umożliwia bezpieczne użycie sys.dm_db_stats_properties przy krzyżowym zastosowaniu wierszy w widokach takich jak sys.objects i sys.stats.

Data aktualizacji statystyk jest przechowywana w obiekcie blob statystyk wraz z histogramem i wektorem gęstości, a nie w metadanych. Gdy nie odczyta się danych w celu wygenerowania danych statystycznych, blob statystyk nie jest tworzony, data nie jest dostępna, a kolumna last_updated jest NULL. Dotyczy to statystyk filtrowanych, dla których predykat nie zwraca żadnych wierszy, lub nowych pustych tabel.

Permissions

Wymaga, aby użytkownik miał uprawnienia do wyboru kolumn statystyk, lub był właścicielem tabeli, albo był członkiem stałej sysadmin roli serwera, db_owner stałej bazy danych lub db_ddladmin stałej bazy danych.

Przykłady

A. Prosty przykład

Poniższy przykład zwraca statystyki dla tabeli Person.Person w bazie AdventureWorks.

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

B. Zwracanie wszystkich właściwości statystycznych dla tabeli

Poniższy przykład zwraca właściwości wszystkich statystyk istniejących dla tabeli TEST.

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. Zwracanie właściwości statystyk dla obiektów często modyfikowanych

Poniższy przykład zwraca wszystkie tabele, zindeksowane widoki i statystyki w aktualnej bazie danych, dla których kolumna wiodąca została zmodyfikowana ponad 1000 razy od ostatniej aktualizacji statystyki.

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;  

Zobacz też

DBCC SHOW_STATISTICS (Transact-SQL)
sys.stats (Transact-SQL)
Powiązane z obiektami dynamiczne widoki zarządzania i funkcje (Transact-SQL)
Dynamiczne widoki zarządzania i funkcje (Transact-SQL)
sys.dm_db_incremental_stats_properties (Transact-SQL)
sys.dm_db_stats_histogram (Transact-SQL)