Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-databas i Microsoft Fabric
Returnerar aggregerade prestandastatistik för cachade lagrade procedurer. Vyn returnerar en rad för varje cachelagrad procedurplan, och radens livslängd är så lång som den lagrade proceduren förblir cacvin. När en lagrad projetur tas bort från cachen elimineras motsvarande rad från denna vy. Vid den tidpunkten tas händelsen query_cache_removal_statistics upp på liknande sätt som sys.dm_exec_query_stats för SQL Server och Azure SQL Managed Instance.
I Azure SQL Database kan dynamiska hanteringsvyer inte exponera information som skulle påverka databasens inneslutning eller exponera information om andra databaser som användaren har åtkomst till. För att undvika att exponera den här informationen filtreras varje rad som innehåller data som inte tillhör den anslutna klientorganisationen bort.
Anmärkning
Resultaten av sys.dm_exec_procedure_stats kan variera vid varje körning eftersom datan endast speglar färdiga frågor och inte sådana som fortfarande är under flygning.
Om du vill anropa detta från Azure Synapse Analytics eller Analytics Platform System (PDW) använder du namnet sys.dm_pdw_nodes_exec_procedure_stats. Den här syntaxen stöds inte av en serverlös SQL-pool i Azure Synapse Analytics.
| Kolumnnamn | Datatyp | Description |
|---|---|---|
| database_id | int | Databas-ID där den lagrade proceduren finns. I Azure SQL Database är värdena unika i en enskild databas eller en elastisk pool, men inte inom en logisk server. |
| object_id | int | Objektidentifieringsnummer för den lagrade proceduren. |
| type | char(2) | Föremålets typ: P = SQL stored procedure PC = Assembly (CLR) lagrad procedur X = Utökad lagrad procedur |
| type_desc | nvarchar(60) | Beskrivning av objekttypen: SQL_STORED_PROCEDURE CLR_STORED_PROCEDURE EXTENDED_STORED_PROCEDURE |
| sql_handle | varbinary(64) | Detta kan användas för att korrelera med frågor i sys.dm_exec_query_stats som utförts från denna lagrade procedur. |
| plan_handle | varbinary(64) | Identifierare för den minnesinterna planen. Den här identifieraren är tillfälligt och förblir endast konstant när planen finns kvar i cacheminnet. Det här värdet kan användas med sys.dm_exec_cached_plans dynamisk hanteringsvy. Kommer alltid att vara 0x000 när en nativt kompilerad lagrad produr frågar en minnesoptimerad tabell. |
| cached_time | datetime | Tidpunkt då den lagrade proceduren lades till cachen. |
| senaste_verkställningstid | datetime | Senast den lagrade proceduren utfördes. |
| execution_count | bigint | Antalet gånger den lagrade proceduren har körts sedan den senast kompilerades. |
| total_worker_time | bigint | Den totala mängden CPU-tid, i mikrosekunder, som förbrukats av exekveringar av denna lagrade procedur sedan den kompilerades. För inbyggt kompilerade lagrade procedurer kan total_worker_time vara opålitliga om många utföranden tar mindre än 1 millisekund. |
| senaste_arbetstid | bigint | CPU-tid, i mikrosekunder, som förbrukades sista gången den lagrade proceduren kördes. 1 |
| min_worker_time | bigint | Den minsta CPU-tiden, i mikrosekunder, som denna lagrade procedur någonsin har förbrukat under en enskild exekvering. 1 |
| max_worker_time | bigint | Den maximala CPU-tiden, i mikrosekunder, som denna lagrade procedur någonsin har förbrukat under en enskild exekvering. 1 |
| total_physical_reads | bigint | Det totala antalet fysiska läsningar utförda av exekveringar av denna lagrade procedur sedan den kompilerades. Kommer alltid att vara 0 när man frågar en minnesoptimerad tabell. |
| last_physical_reads | bigint | Antalet fysiska läsningar som utfördes senast den lagrade proceduren utfördes. Kommer alltid att vara 0 när man frågar en minnesoptimerad tabell. |
| min_physical_reads | bigint | Det minsta antalet fysiska läsningar som denna lagrade procedur någonsin har utfört under en enskild exekvering. Kommer alltid att vara 0 när man frågar en minnesoptimerad tabell. |
| max_physical_reads | bigint | Det maximala antalet fysiska läsningar som denna lagrade procedur någonsin har utfört under en enskild exekvering. Kommer alltid att vara 0 när man frågar en minnesoptimerad tabell. |
| total_logical_writes | bigint | Det totala antalet logiska skrivningar som utförts av exekveringar av denna lagrade procedur sedan den kompilerades. Kommer alltid att vara 0 när man frågar en minnesoptimerad tabell. |
| senaste_logiska_skrivningar | bigint | Antalet buffertpoolsidor som blev smutsiga senast planen genomfördes. Om en sida redan är smutsig (ändrad) räknas inga skrivningar. Kommer alltid att vara 0 när man frågar en minnesoptimerad tabell. |
| min_logical_writes | bigint | Det minsta antalet logiska skrivningar som denna lagrade procedur någonsin har utfört under en enskild exekvering. Kommer alltid att vara 0 när man frågar en minnesoptimerad tabell. |
| max_logical_writes | bigint | Det maximala antalet logiska skrivningar som denna lagrade procedur någonsin har utfört under en enskild exekvering. Kommer alltid att vara 0 när man frågar en minnesoptimerad tabell. |
| total_logical_reads (totalt logiska läsningar) | bigint | Det totala antalet logiska läsningar utförda av exekveringar av denna lagrade procedur sedan den kompilerades. Kommer alltid att vara 0 när man frågar en minnesoptimerad tabell. |
| last_logical_reads | bigint | Antalet logiska läsningar som utfördes senast den lagrade proceduren utfördes. Kommer alltid att vara 0 när man frågar en minnesoptimerad tabell. |
| min_logical_reads | bigint | Det minsta antalet logiska läsningar som denna lagrade procedur någonsin har utfört under en enskild exekvering. Kommer alltid att vara 0 när man frågar en minnesoptimerad tabell. |
| max_logical_reads | bigint | Det maximala antalet logiska läsningar som denna lagrade procedur någonsin har utfört under en enskild exekvering. Kommer alltid att vara 0 när man frågar en minnesoptimerad tabell. |
| total_elapsed_time | bigint | Den totala förflutna tiden, i mikrosekunder, för slutförda exekveringar av denna lagrade procedur. |
| senaste_förfluten_tid | bigint | Den förflutna tiden, i mikrosekunder, för den senast genomförda utförandet av denna lagrade procedur. |
| min_elapsed_time | bigint | Den minsta förflutna tiden, i mikrosekunder, för varje slutförd exekvering av denna lagrade procedur. |
| max_tidsmängd | bigint | Den maximala förflutna tiden, i mikrosekunder, för varje slutförd exekvering av denna lagrade procedur. |
| total_spills | bigint | Det totala antalet sidor som spillts vid exekvering av denna lagrade procedur sedan den kompilerades. Gäller för: Börjar med SQL Server 2017 (14.x) CU3 |
| last_spills | bigint | Antalet sidor som spilldes senast den lagrade proceduren kördes. Gäller för: Börjar med SQL Server 2017 (14.x) CU3 |
| min_spills | bigint | Det minsta antalet sidor som denna lagrade procedur någonsin har spillt under en enda exekvering. Gäller för: Börjar med SQL Server 2017 (14.x) CU3 |
| max_spills | bigint | Det maximala antalet sidor som denna lagrade procedur någonsin har spillt under en enda exekvering. Gäller för: Börjar med SQL Server 2017 (14.x) CU3 |
| pdw_node_id | int | Identifieraren för noden som den här fördelningen är på. gäller för: Azure Synapse Analytics, Analytics Platform System (PDW) |
| total_page_server_reads | bigint | Det totala antalet sidserverläsningar som utförts av exekveringar av denna lagrade procedur sedan den kompilerades. Gäller för: Azure SQL Database Hyperscale |
| last_page_server_reads | bigint | Antalet sidserverläsningar som utfördes senast den lagrade proceduren kördes. Gäller för: Azure SQL Database Hyperscale |
| min_page_server_reads | bigint | Det minsta antalet sidserverläsningar som denna lagrade procedur någonsin har utfört under en enskild exekvering. Gäller för: Azure SQL Database Hyperscale |
| max_page_server_reads | bigint | Det maximala antalet sidserverläsningar som denna lagrade procedur någonsin har utfört under en enskild exekvering. Gäller för: Azure SQL Database Hyperscale |
1 För nativt kompilerade lagrade procedurer när statistiksamling är aktiverad, samlas arbetarens tid in i millisekunder. Om frågan utförs på mindre än en millisekund blir värdet 0.
Permissions
På SQL Server och SQL Managed Instance kräver VIEW SERVER STATE behörighet.
I SQL Database Grundläggande, S0och S1 tjänstmål och för databaser i elastiska pooler, serveradministratör konto, Microsoft Entra-administratör konto eller medlemskap i ##MS_ServerStateReader##serverrollen krävs. För alla andra SQL Database-tjänstmål krävs antingen VIEW DATABASE STATE behörighet för databasen eller medlemskap i ##MS_ServerStateReader## serverrollen.
Behörigheter för SQL Server 2022 och senare
Kräver BEHÖRIGHET FÖR VISNINGSSERVERNS PRESTANDATILLSTÅND på servern.
Anmärkningar
Statistiken i vyn uppdateras när en lagrad procedurexekvering slutförs.
Examples
Följande exempel ger information om de tio vanligaste lagrade procedurerna identifierade efter genomsnittlig förfluten tid.
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;
Se även
Körningsrelaterade vyer och funktioner för dynamisk hantering (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)