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
Funkce sys.dm_db_stats_properties dynamické správy vrací statistiky pro specifikovaný databázový objekt v aktuální databázi.
Pro rozdělené tabulky viz také podobný sys.dm_db_incremental_stats_properties.
Syntax
sys.dm_db_stats_properties (object_id, stats_id)
Argumenty
object_id
ID objektu v aktuální databázi.
object_id je int.
stats_id
ID statistik pro specifikované object_id. ID statistik můžete získat z pohledu dynamické správy sys.stats .
stats_id je int.
Vrácená tabulka
| Název sloupce | Datový typ | Description |
|---|---|---|
object_id |
int | ID objektu (tabulka nebo indexovaný pohled). |
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 v tomto článku. |
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 je rovna hodnotě vrácené ve sloupci rows . |
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 | Trvalé procento vzorku použité pro aktualizace statistiky, které explicitně nezadávají procento vzorkování. Pokud je hodnota nula, není pro tuto statistiku nastaveno žádné trvalé procento vzorku. Platí na: SQL Server 2016 (13.x) SP1 CU4 a novější verze |
Poznámky
Funkce sys.dm_db_stats_properties vrací prázdnou sadu řádků za kterékoliv z následujících podmínek:
-
object_idnebostats_idjeNULL. - Specifikovaný objekt není nalezen 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í při křížové aplikaci na sys.dm_db_stats_properties řádky ve zobrazeních 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 se nečtou žádná data ke generování statistik, objekt blob statistiky se nevytvořil, datum není k dispozici a last_updated sloupec je NULL. Tato podmínka platí pro filtrované statistiky, u kterých predikát nevrací žádné řádky, ani pro nové prázdné tabulky.
Povolení
Potřebujete SELECT oprávnění ke statistickým sloupcům, nebo musíte vlastnit tabulku, nebo být členem sysadmin role pevného serveru, pevné databáze db_owner nebo role pevné databáze db_ddladmin .
Examples
A. Jednoduchý příklad
Následující příklad vrací informace o statistikách tabulky Person.Person v databázi AdventureWorks .
SELECT * FROM sys.dm_db_stats_properties (object_id('Person.Person'), 1);
B. Vraťte všechny statistické vlastnosti tabulky
Následující příklad vrací vlastnosti všech statistik, které existují pro tabulku Sales.SalesOrderDetail.
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. Vlastnosti statistik pro často modifikované objekty
Následující příklad vrací všechny tabulky, indexované pohledy a statistiky v aktuální databázi, u kterých byl úvodní sloupec od poslední aktualizace statistiky upraven více než 1 000krát.
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;
Související obsah
- DBCC SHOW_STATISTICS (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)