Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza 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)