Sdílet prostřednictvím


sys.dm_exec_procedure_stats (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics 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_sql_text (Transact-SQL)
sys.dm_exec_query_plan (Transact-SQL)
sys.dm_exec_query_stats (Transact-SQL)
sys.dm_exec_trigger_stats (Transact-SQL)
sys.dm_exec_cached_plans (Transact-SQL)