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
Azure Synapse Analytics
Analytics Platform System (PDW)
databáze SQL v Microsoft Fabric
Vrací agregované výkonnostní statistiky pro uložené uložené procedury. Zobrazení vrací jeden řádek pro každý uložený plán uložených procedur a životnost řádku je tak dlouhá, jak zůstává uložená procedura uložená v mezipaměti. Když je uložená procedura odstraněna z cache, odpovídající řádek je z tohoto pohledu odstraněn. V té době je událost query_cache_removal_statistics vyvolána podobně jako sys.dm_exec_query_stats pro SQL Server a Azure SQL Managed Instance.
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:
Výsledky sys.dm_exec_procedure_stats se mohou lišit při každém provedení, protože data odrážejí pouze dokončené dotazy, nikoli ty, které jsou stále v procesu.
Pokud to chcete volat ze služby Azure Synapse Analytics nebo systému PDW (Analytics Platform System), použijte název sys.dm_pdw_nodes_exec_procedure_stats. Tato syntaxe není podporována bezserverovým fondem SQL ve službě Azure Synapse Analytics.
| Název sloupce | Datový typ | Description |
|---|---|---|
| database_id | int | ID databáze, ve kterém uložená procedura sídlí. 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 | Identifikační číslo objektu uložené procedury. |
| type | char(2) | Typ objektu: P = SQL uložená procedura PC = Assemblerová (CLR) uložená procedura X = Rozšířená uložená procedura |
| type_desc | nvarchar(60) | Popis typu objektu: SQL_STORED_PROCEDURE CLR_STORED_PROCEDURE EXTENDED_STORED_PROCEDURE |
| sql_handle | varbinary(64) | To lze použít ke korelaci s dotazy v sys.dm_exec_query_stats , které byly provedeny v rámci této uložené procedury. |
| plan_handle | varbinary(64) | Identifikátor plánu v paměti. Tento identifikátor je přechodný a zůstává konstantní pouze v době, kdy plán zůstává v mezipaměti. Tuto hodnotu lze použít s sys.dm_exec_cached_plans zobrazením dynamické správy. Vždy bude 0x000, když nativně kompilovaná uložená procedura dotazuje tabulku optimalizovanou pro paměť. |
| cached_time | datetime | Čas, kdy byla uložená procedura přidána do cache. |
| poslední_čas_spuštění | datetime | Minule, kdy byla uložená procedura vykonána. |
| počet_provedení | bigint | Počet provedení uložené procedury od posledního zkompilování. |
| celkový_čas_pracovníka | bigint | Celkový čas CPU, v mikrosekundách, který byl spotřebován vykonáním této uložené procedury od jejího zkompilování. U nativně kompilovaných uložených procedur nemusí být total_worker_time přesné, pokud mnoho provedení trvá méně než 1 milisekundu. |
| last_worker_time | bigint | CPU čas v mikrosekundách, který byl spotřebován při posledním provedení uložené procedury. 1 |
| min_worker_time | bigint | Minimální čas CPU, v mikrosekundách, který tato uložená procedura kdy během jednoho spuštění spotřebovala. 1 |
| max_worker_time | bigint | Maximální čas CPU, v mikrosekundách, který tato uložená procedura kdy během jednoho spuštění spotřebovala. 1 |
| celkový_počet_fyzických_čtení | bigint | Celkový počet fyzických přečtení provedených vykonáním této uložené procedury od jejího zkompilování. Bude vždy 0 při dotazování na paměťově optimalizovanou tabulku. |
| poslední_fyzické_čtení | bigint | Počet fyzických čtení provedených při posledním provedení uložené procedury. Bude vždy 0 při dotazování na paměťově optimalizovanou tabulku. |
| min_physical_reads | bigint | Minimální počet fyzických přečtení, které tato uložená procedura kdy provedla během jednoho vykonání. Bude vždy 0 při dotazování na paměťově optimalizovanou tabulku. |
| max_physical_reads | bigint | Maximální počet fyzických přečtení, které tato uložená procedura kdy provedla během jednoho vykonání. Bude vždy 0 při dotazování na paměťově optimalizovanou tabulku. |
| total_logical_writes | bigint | Celkový počet logických zápisů provedených vykonáním této uložené procedury od jejího zkompilování. Bude vždy 0 při dotazování na paměťově optimalizovanou tabulku. |
| poslední_logické_zápisy | bigint | Počet stránek buffer poolu znečištěných při posledním provedení plánu. Pokud je stránka již zašpiněná (změněna), nebudou se počítat žádné zápisy. Bude vždy 0 při dotazování na paměťově optimalizovanou tabulku. |
| min_logical_writes | bigint | Minimální počet logických zápisů, které tato uložená procedura kdy provedla během jednoho vykonání. Bude vždy 0 při dotazování na paměťově optimalizovanou tabulku. |
| max_logický_zápis | bigint | Maximální počet logických zápisů, které tato uložená procedura kdy provedla během jednoho vykonání. Bude vždy 0 při dotazování na paměťově optimalizovanou tabulku. |
| total_logical_reads | bigint | Celkový počet logických čtení provedených při vykonání této uložené procedury od jejího zkompilování. Bude vždy 0 při dotazování na paměťově optimalizovanou tabulku. |
| poslední_logické_čtení | bigint | Počet logických čtení provedených při posledním provedení uložené procedury. Bude vždy 0 při dotazování na paměťově optimalizovanou tabulku. |
| min_logical_reads | bigint | Minimální počet logických přečtení, které tato uložená procedura kdy provedla během jednoho vykonání. Bude vždy 0 při dotazování na paměťově optimalizovanou tabulku. |
| max_logical_reads | bigint | Maximální počet logických přečtení, které tato uložená procedura kdy provedla během jednoho vykonání. Bude vždy 0 při dotazování na paměťově optimalizovanou tabulku. |
| total_elapsed_time | bigint | Celkový uplynulý čas v mikrosekundách pro dokončení tohoto uloženého postupu. |
| poslední_uběhnutý_čas | bigint | Uplynulý čas v mikrosekundách pro nejnověji dokončené provedení této uložené procedury. |
| minimální_uběhlý_čas | bigint | Minimální doba uplynulá, v mikrosekundách, pro jakékoli dokončené provedení této uložené procedury. |
| max_doba_trvání | bigint | Maximální uplynulý čas, v mikrosekundách, pro jakékoli dokončené provedení této uložené procedury. |
| total_spills | bigint | Celkový počet stránek vypuštěných při provedení této uložené procedury od jejího zkompilování. Platí na: Začínám SQL Server 2017 (14.x) CU3 |
| last_spills | bigint | Počet stránek vysypaných při posledním spuštění uložené procedury. Platí na: Začínám SQL Server 2017 (14.x) CU3 |
| min_spills | bigint | Minimální počet stránek, které tato uložená procedura kdy během jednoho spuštění vynechala. Platí na: Začínám SQL Server 2017 (14.x) CU3 |
| max_spills | bigint | Maximální počet stránek, které tato uložená procedura kdy během jednoho spuštění vyvolala. Platí na: Začínám SQL Server 2017 (14.x) CU3 |
| pdw_node_id | int | Identifikátor uzlu, na který je tato distribuce zapnutá. Platí na: Azure Synapse Analytics, Analytics Platform System (PDW) |
| total_page_server_reads | bigint | Celkový počet čtení na stránkovém serveru provedených vykonáním této uložené procedury od jejího zkompilování. Platí pro: Azure SQL Database Hyperscale |
| poslední_čtení_stránky_serveru | bigint | Počet čtení na stránkovém serveru provedených při posledním spuštění uložené procedury. Platí pro: Azure SQL Database Hyperscale |
| min_page_server_reads | bigint | Minimální počet stránkového serveru čte, jaký tato uložená procedura kdy provedla během jednoho vykonání. Platí pro: Azure SQL Database Hyperscale |
| max_page_server_reads | bigint | Maximální počet stránkovacích serverů, které tato uložená procedura kdy provedla během jednoho vykonání. Platí pro: Azure SQL Database Hyperscale |
1 U nativně kompilovaných uložených procedur, když je povoleno sběr statistik, se pracovní čas počítá v milisekundách. Pokud dotaz proběhne za méně než milisekundu, hodnota bude 0.
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.
Poznámky
Statistiky v zobrazení se aktualizují po dokončení uložené procedury.
Examples
Následující příklad vrací informace o deseti nejvyšších uložených procedurách identifikovaných průměrným uplynulým časem.
SELECT TOP 10 d.object_id, d.database_id, OBJECT_NAME(object_id, database_id) 'proc name',
d.cached_time, d.last_execution_time, d.total_elapsed_time,
d.total_elapsed_time/d.execution_count AS [avg_elapsed_time],
d.last_elapsed_time, d.execution_count
FROM sys.dm_exec_procedure_stats AS d
ORDER BY [total_worker_time] DESC;
Viz také
zobrazení a funkce související se spouštěním dynamické správy (Transact-SQL)
sys.dm_exec_query_stats (Transact-SQL)
sys.dm_exec_trigger_stats (Transact-SQL)
sys.dm_exec_cached_plans (Transact-SQL)