Sdílet prostřednictvím


sys.dm_db_index_usage_stats (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)databáze SQL v Microsoft Fabric

Vrací počet různých typů indexových operací a čas, kdy byl každý typ operace naposledy proveden.

V Azure SQL Database nemůžou zobrazení dynamické správy zveřejnit informace, které by ovlivnily zahrnutí databáze nebo zpřístupňují informace o jiných databázích, ke kterým má uživatel přístup. Aby se zabránilo zveřejnění těchto informací, vyfiltruje se každý řádek obsahující data, která nepatří do připojeného tenanta.

Poznámka:

DMV sys.dm_db_index_usage_stats nevrací informace o paměťově optimalizovaných indexech nebo prostorových indexech. Pro informace o využití indexů optimalizovaných pro paměť viz sys.dm_db_xtp_index_stats (Transact-SQL).

Poznámka:

Pro vyvolání tohoto pohledu z Azure Synapse Analytics nebo Analytics Platform System (PDW) použijte sys.dm_pdw_nodes_db_index_usage_stats. Tato syntaxe není podporována bezserverovým fondem SQL ve službě Azure Synapse Analytics.

Název sloupce Datový typ Description
database_id smallint ID databáze, ve které je tabulka nebo pohled definován.

Ve službě Azure SQL Database jsou hodnoty jedinečné v rámci jedné databáze nebo elastického fondu, ale ne v rámci logického serveru.
object_id int ID tabulky nebo pohledu, na kterém je index definován
index_id int ID indexu.
user_seeks bigint Počet vyhledávání podle uživatelských dotazů.
user_scans bigint Počet skenů uživatelskými dotazy, které nepoužily predikát 'seek'.
user_lookups bigint Počet dotazů podle záložek.
user_updates bigint Počet aktualizací podle uživatelských dotazů. To zahrnuje Insert, Delete a Update, které představují počet provedených operací, nikoli skutečné ovlivněné řádky. Například pokud smažete 1000 řádků v jednom příkazu, tento počet se zvýší o 1
last_user_seek datetime Čas posledního uživatelského vyhledávání
last_user_scan datetime Čas posledního uživatelského skenu.
last_user_lookup datetime Čas posledního uživatelského vyhledávání.
last_user_update datetime Čas poslední uživatelské aktualizace.
system_seeks bigint Počet vyhledávání podle systémových dotazů.
system_scans bigint Počet systémových dotazů.
system_lookups bigint Počet vyhledávání podle systémových dotazů.
system_updates bigint Počet aktualizací podle systémových dotazů.
last_system_seek datetime Čas posledního systému hledání.
last_system_scan datetime Čas posledního skenování systému.
last_system_lookup datetime Čas posledního vyhledávání systému.
last_system_update datetime Čas poslední aktualizace systému.
pdw_node_id int platí pro: Azure Synapse Analytics, Analytics Platform System (PDW)

Identifikátor uzlu, na který je tato distribuce zapnutá.

Poznámky

Každé jednotlivé vyhledávání, skenování, vyhledání nebo aktualizace zadání indexu jedním provedením dotazu se počítá jako použití tohoto indexu a v tomto pohledu zvyšuje odpovídající čítač. Informace jsou hlášeny jak pro operace způsobené uživatelsky zadanými dotazy, tak pro operace způsobené interně generovanými dotazy, jako jsou skeny pro sběr statistik.

Sloupec user_updates je čítačem údržby indexu způsobenou vkládáním, aktualizací nebo mazáním operací v základní tabulce nebo pohledu. Tento pohled můžete použít k určení, které indexy vaše aplikace používají jen zřídce. Zobrazení můžete také použít k určení, které indexy způsobují režijní náklady na údržbu. Můžete zvážit zrušení indexů, které vyžadují režijní režii, ale nepoužívají se pro dotazy nebo se používají jen zřídka.

Čítače jsou inicializovány tak, aby se vyprázdnily při spuštění databázového enginu. Pomocí sloupce sqlserver_start_time v sys.dm_os_sys_info vyhledejte čas posledního spuštění databázového stroje. Navíc, kdykoli je databáze odpojena nebo vypnuta (například protože AUTO_CLOSE je nastaveno na ON), jsou odstraněny všechny řádky spojené s databází.

Když je použit index, přidá sys.dm_db_index_usage_stats se řádek, pokud řádek pro tento index již neexistuje. Když se řádek přičte, jeho čítače jsou původně nastaveny na nulu.

Při upgradu na SQL Server 2008 R2 (10.50.x), SQL Server 2012 (11.x) nebo SQL Server 2014 (12.x) jsou položky v odstraněny sys.dm_db_index_usage_stats . Od SQL Server 2016 (13.x) jsou záznamy zachovány tak, jak byly před SQL Server 2008 R2 (10.50.x).

Povolení

Na SQL Serveru a službě SQL Managed Instance vyžaduje VIEW SERVER STATE oprávnění.

U cílů služby SQL Database Basic, S0 a S1 a pro databáze v elastických fondech se vyžaduje účet správce serveru , účet správce Microsoft Entra nebo členství v ##MS_ServerStateReader##roli serveru . U všech ostatních cílů VIEW DATABASE STATE služby SQL Database se vyžaduje buď oprávnění k databázi, nebo členství v ##MS_ServerStateReader## roli serveru.

Oprávnění pro SQL Server 2022 a novější

Vyžaduje oprávnění ZOBRAZIT STAV VÝKONU SERVERU na serveru.

Viz také

Zobrazení a funkce dynamické správy související s indexy (Transact-SQL)
sys.dm_db_index_physical_stats (Transact-SQL)
sys.dm_db_index_operational_stats (Transact-SQL)
sys.indexes (Transact-SQL)
sys.objects (Transact-SQL)
sys.dm_os_sys_info (Transact-SQL)
Monitorování a ladění výkonu