Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL databáze v Microsoft Fabric
Vrací vlastnosti statistik pro specifikovaný databázový objekt (tabulku nebo indexovaný pohled) v aktuální databázi SQL Serveru. Pro rozdělené tabulky viz podobná sys.dm_db_incremental_stats_properties.
Syntaxe
sys.dm_db_stats_properties (object_id, stats_id)
Arguments
object_id
je ID objektu v aktuální databázi, pro který jsou požadovány vlastnosti jedné z jejích statistik.
object_id je int.
stats_id
Je ID statistik pro daný object_id. ID statistiky lze získat ze zobrazení dynamické správy sys.stats .
stats_id je int.
Vrácená tabulka
| Název sloupce | Datový typ | Description |
|---|---|---|
| object_id | int | ID objektu (tabulky nebo indexovaného zobrazení), pro který se mají vrátit vlastnosti objektu statistiky. |
| stats_id | int | ID objektu statistiky. Je jedinečný v rámci tabulky nebo indexovaného zobrazení. Další informace naleznete v tématu sys.stats (Transact-SQL). |
| last_updated | datetime2 | Datum a čas, kdy byl objekt statistik naposledy aktualizován. Další informace najdete v části Poznámky na této stránce. |
| rows | bigint | Celkový počet řádků v tabulce nebo indexovaném zobrazení při poslední aktualizaci statistik. Pokud jsou statistiky filtrované nebo odpovídají filtrovanému indexu, může být počet řádků menší než počet řádků v tabulce. |
| rows_sampled | bigint | Celkový počet řádků vzorkovaných pro výpočty statistik. |
| steps | int | Počet kroků v histogramu Další informace naleznete v tématu DBCC SHOW_STATISTICS (Transact-SQL). |
| unfiltered_rows | bigint | Celkový počet řádků v tabulce před aplikací filtračního výrazu (pro filtrované statistiky). Pokud statistiky nejsou filtrovány, unfiltered_rows se rovná hodnotám vráceným ve sloupci řádků. |
| modification_counter | bigint | Celkový počet úprav pro vedoucí sloupec statistik (sloupec, na kterém je histogram postaven) od poslední aktualizace statistik. Tabulky optimalizované pro paměť: od SQL Server 2016 (13.x) a v Azure SQL Database tento sloupec obsahuje: celkový počet úprav tabulky od poslední aktualizace statistik nebo restartu databáze. |
| persisted_sample_percent | float | Procento trvalého vzorku používané pro aktualizace statistik, které explicitně nespecifikují procento výběru. Pokud je hodnota nula, není pro tuto statistiku nastaveno žádné trvalé procento vzorku. Platí na: SQL Server 2016 (13.x) SP1 CU4 |
Poznámky
sys.dm_db_stats_properties vrátí prázdnou sadu řádků za kterékoliv z následujících podmínek:
- object_id nebo stats_id je NULL.
- Specifikovaný objekt se nenachází nebo neodpovídá tabulce či indexovanému pohledu.
- Specifikované ID statistik neodpovídá existujícím statistikám pro specifikované ID objektu.
- Současný uživatel nemá oprávnění zobrazit objekt statistiky.
Toto chování umožňuje bezpečné použití sys.dm_db_stats_properties při křížové aplikaci na řádky v pohledech jako sys.objects a sys.stats.
Datum aktualizace statistiky je uloženo v objektu blob statistiky statistiky společně s histogramem a vektor hustoty, ne v metadatech. Pokud nejsou data čtena k generování statistických dat, statistická blob se nevytvoří, datum není dostupné a sloupec last_updated je NULL. To platí pro filtrované statistiky, u kterých predikát nevrací žádné řádky, nebo pro nové prázdné tabulky.
Povolení
Vyžaduje, aby uživatel měl oprávnění k výběru ve sloupcích statistik, nebo aby vlastnil tabulku, nebo aby byl členem sysadmin role pevného serveru, db_owner role pevné databáze nebo db_ddladmin role pevné databáze.
Examples
A. Jednoduchý příklad
Následující příklad vrací statistiky tabulky Person.Person v databázi AdventureWorks.
SELECT * FROM sys.dm_db_stats_properties (object_id('Person.Person'), 1);
B. Vrácení všech vlastností statistiky pro tabulku
Následující příklad vrací vlastnosti všech statistik, které existují pro tabulku 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. Vrácení vlastností statistiky pro často modifikované objekty
Následující příklad vrací všechny tabulky, indexované pohledy a statistiky v aktuální databázi, pro které byl vedoucí sloupec od poslední aktualizace statistik upraven více než 1000krát.
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;
Viz také
SHOW_STATISTICS DBCC (Transact-SQL)
sys.stats (Transact-SQL)
Zobrazení a funkce dynamické správy související s objekty (Transact-SQL)
zobrazení a funkce dynamické správy (Transact-SQL)
sys.dm_db_incremental_stats_properties (Transact-SQL)
sys.dm_db_stats_histogram (Transact-SQL)