Delen via


sys.dm_exec_procedure_stats (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform Systeem (PDW)SQL-database in Microsoft Fabric

Geeft geaggregeerde prestatiestatistieken terug voor gecachte opgeslagen procedures. De weergave geeft één rij terug voor elk gecachte opgeslagen procedureplan, en de levensduur van de rij is zo lang als de opgeslagen procedure gecachet blijft. Wanneer een opgeslagen procedure uit de cache wordt verwijderd, wordt de overeenkomstige rij uit deze weergave verwijderd. Op dat moment wordt het query_cache_removal_statistics evenement opgevoerd vergelijkbaar met sys.dm_exec_query_stats voor SQL Server en Azure SQL Managed Instance.

In Azure SQL Database kunnen dynamische beheerweergaven geen informatie weergeven die van invloed is op databaseinsluiting of informatie weergeven over andere databases waartoe de gebruiker toegang heeft. Om te voorkomen dat deze informatie zichtbaar wordt gemaakt, wordt elke rij met gegevens die geen deel uitmaken van de verbonden tenant uitgefilterd.

Opmerking

De resultaten van sys.dm_exec_procedure_stats kunnen per uitvoering variëren, omdat de data alleen voltooide queries weerspiegelt en niet die nog in uitvoering zijn. Gebruik de naam sys.dm_pdw_nodes_exec_procedure_statsom dit aan te roepen vanuit Azure Synapse Analytics of Analytics Platform System (PDW). Deze syntaxis wordt niet ondersteund door een serverloze SQL-pool in Azure Synapse Analytics.

Kolomnaam Gegevenstype Description
database_id int Database-ID waarin de opgeslagen procedure zich bevindt.

In Azure SQL Database zijn de waarden uniek binnen één database of een elastische pool, maar niet binnen een logische server.
object_id int Objectidentificatienummer van de opgeslagen procedure.
type char(2) Type van het object:

P = SQL stored procedure

PC = Assembly (CLR) opgeslagen procedure

X = Uitgebreide opgeslagen procedure
type_desc nvarchar(60) Beschrijving van het objecttype:

SQL_STORED_PROCEDURE

CLR_STORED_PROCEDURE

EXTENDED_STORED_PROCEDURE
sql_handle varbinary(64) Dit kan worden gebruikt om te correleren met zoekopdrachten in sys.dm_exec_query_stats die binnen deze opgeslagen procedure zijn uitgevoerd.
plan_handle varbinary(64) Identificator voor het in-memory plan. Deze id is tijdelijk en blijft alleen constant terwijl het plan in de cache blijft. Deze waarde kan worden gebruikt met de sys.dm_exec_cached_plans dynamische beheerweergave.

Zal altijd 0x000 wanneer een native gecompileerde opgeslagen procedure een geheugengeoptimaliseerde tabel bevraagt.
gecachede_tijd datetime Tijd waarop de opgeslagen procedure aan de cache werd toegevoegd.
laatste_uitvoertijd datetime De laatste keer dat de opgeslagen procedure werd uitgevoerd.
execution_count bigint Het aantal keren dat de opgeslagen procedure is uitgevoerd sinds de laatste compilatie.
total_worker_time bigint De totale hoeveelheid CPU-tijd, in microseconden, die is verbruikt door uitvoeringen van deze opgeslagen procedure sinds deze werd gecompileerd.

Voor native gecompileerde opgeslagen procedures is total_worker_time mogelijk niet accuraat als veel uitvoeringen minder dan 1 milliseconde duren.
laatste_werknemerstijd bigint CPU-tijd, in microseconden, die werd verbruikt bij de laatste uitvoering van de opgeslagen procedure. 1
min_worker_time bigint De minimale CPU-tijd, in microseconden, die deze opgeslagen procedure ooit heeft verbruikt tijdens een enkele uitvoering. 1
max_worker_time bigint De maximale CPU-tijd, in microseconden, die deze opgeslagen procedure ooit heeft verbruikt tijdens een enkele uitvoering. 1
total_physical_reads bigint Het totale aantal fysieke lezingen dat door uitvoeringen van deze opgeslagen procedure is uitgevoerd sinds deze is gecompileerd.

Zal altijd 0 query's uitvoeren op een tabel die is geoptimaliseerd voor geheugen.
last_physical_reads bigint Het aantal fysieke reads dat de laatste keer dat de opgeslagen procedure werd uitgevoerd, uitgevoerd.

Zal altijd 0 query's uitvoeren op een tabel die is geoptimaliseerd voor geheugen.
min_physical_reads bigint Het minimum aantal fysieke lezingen dat deze opgeslagen procedure ooit heeft uitgevoerd tijdens een enkele uitvoering.

Zal altijd 0 query's uitvoeren op een tabel die is geoptimaliseerd voor geheugen.
max_physical_reads bigint Het maximale aantal fysieke lezingen dat deze opgeslagen procedure ooit tijdens één uitvoering heeft uitgevoerd.

Zal altijd 0 query's uitvoeren op een tabel die is geoptimaliseerd voor geheugen.
total_logical_writes bigint Het totale aantal logische schrijfopdrachten dat is uitgevoerd door uitvoeringen van deze opgeslagen procedure sinds deze is gecompileerd.

Zal altijd 0 query's uitvoeren op een tabel die is geoptimaliseerd voor geheugen.
laatste_logische_schrijvingen bigint Het aantal bufferpoolpagina's dat de vorige keer dat het plan werd uitgevoerd, werd vervuild. Als een pagina al vuil (gewijzigd) is, worden er geen schrijfbewerkingen geteld.

Zal altijd 0 query's uitvoeren op een tabel die is geoptimaliseerd voor geheugen.
min_logical_writes bigint Het minimum aantal logische schrijfacties dat deze opgeslagen procedure ooit heeft uitgevoerd tijdens een enkele uitvoering.

Zal altijd 0 query's uitvoeren op een tabel die is geoptimaliseerd voor geheugen.
max_logical_writes bigint Het maximale aantal logische schrijfacties dat deze opgeslagen procedure ooit tijdens één uitvoering heeft uitgevoerd.

Zal altijd 0 query's uitvoeren op een tabel die is geoptimaliseerd voor geheugen.
total_logical_reads bigint Het totale aantal logische reads dat is uitgevoerd door uitvoeringen van deze opgeslagen procedure sinds deze werd gecompileerd.

Zal altijd 0 query's uitvoeren op een tabel die is geoptimaliseerd voor geheugen.
last_logical_reads bigint Het aantal logische lezingen dat voor het laatst werd uitgevoerd toen de opgeslagen procedure werd uitgevoerd.

Zal altijd 0 query's uitvoeren op een tabel die is geoptimaliseerd voor geheugen.
min_logical_reads bigint Het minimum aantal logische lezingen dat deze opgeslagen procedure ooit heeft uitgevoerd tijdens een enkele uitvoering.

Zal altijd 0 query's uitvoeren op een tabel die is geoptimaliseerd voor geheugen.
max_logical_reads bigint Het maximale aantal logische lezingen dat deze opgeslagen procedure ooit heeft uitgevoerd tijdens een enkele uitvoering.

Zal altijd 0 query's uitvoeren op een tabel die is geoptimaliseerd voor geheugen.
total_elapsed_time bigint De totale verstreken tijd, in microseconden, voor voltooide uitvoeringen van deze opgeslagen procedure.
laatste_verstreken_tijd bigint De verstreken tijd, in microseconden, voor de meest recent voltooide uitvoering van deze opgeslagen procedure.
min_elapsed_time bigint De minimale verstreken tijd, in microseconden, voor elke voltooide uitvoering van deze opgeslagen procedure.
max_verstreken_tijd bigint De maximale verstreken tijd, in microseconden, voor elke voltooide uitvoering van deze opgeslagen procedure.
total_spills bigint Het totale aantal pagina's dat is gelekt door de uitvoering van deze opgeslagen procedure sinds deze is gecompileerd.

Van toepassing op: Vanaf SQL Server 2017 (14.x) CU3
last_spills bigint Het aantal pagina's dat de laatste keer dat de opgeslagen procedure werd uitgevoerd, is gelekt.

Van toepassing op: Vanaf SQL Server 2017 (14.x) CU3
min_spills bigint Het minimale aantal pagina's dat deze opgeslagen procedure ooit heeft verloren tijdens een enkele uitvoering.

Van toepassing op: Vanaf SQL Server 2017 (14.x) CU3
max_spills bigint Het maximale aantal pagina's dat deze opgeslagen procedure ooit heeft verloren tijdens een enkele uitvoering.

Van toepassing op: Vanaf SQL Server 2017 (14.x) CU3
pdw_node_id int De id voor het knooppunt waarop deze distributie zich bevindt.

Van toepassing op: Azure Synapse Analytics, Analytics Platform System (PDW)
total_page_server_reads bigint Het totale aantal paginaserver-lezingen uitgevoerd door uitvoeringen van deze opgeslagen procedure sinds deze is gecompileerd.

Van toepassing op: Azure SQL Database Hyperscale
last_page_server_reads bigint Het aantal pagina-serverlezingen dat voor het laatst werd uitgevoerd toen de opgeslagen procedure werd uitgevoerd.

Van toepassing op: Azure SQL Database Hyperscale
min_page_server_reads bigint Het minimale aantal paginaserver-reads dat deze opgeslagen procedure ooit heeft uitgevoerd tijdens een enkele uitvoering.

Van toepassing op: Azure SQL Database Hyperscale
max_page_server_reads bigint Het maximale aantal paginaserver-reads dat deze opgeslagen procedure ooit heeft uitgevoerd tijdens een enkele uitvoering.

Van toepassing op: Azure SQL Database Hyperscale

1 Voor native gecompileerde opgeslagen procedures wordt de werktijd, wanneer statistiekverzameling is ingeschakeld, in milliseconden verzameld. Als de query in minder dan een milliseconde wordt uitgevoerd, zal de waarde 0 zijn.

Permissions

Voor SQL Server en SQL Managed Instance is een machtiging vereist VIEW SERVER STATE .

Voor servicedoelstellingen van SQL Database Basic, S0 en S1 en voor databases in elastische pools is het serverbeheerdersaccount , het Microsoft Entra-beheerdersaccount of het lidmaatschap van de ##MS_ServerStateReader##serverrol vereist. Voor alle andere SQL Database-servicedoelstellingen is de VIEW DATABASE STATE machtiging voor de database of het lidmaatschap van de ##MS_ServerStateReader## serverfunctie vereist.

Machtigingen voor SQL Server 2022 en hoger

Vereist de machtiging PRESTATIESTATUS VAN DE WEERGAVESERVER op de server.

Opmerkingen

Statistieken in de weergave worden bijgewerkt wanneer de uitvoering van een opgeslagen procedure is voltooid.

Voorbeelden

Het volgende voorbeeld geeft informatie over de tien belangrijkste opgeslagen procedures die zijn geïdentificeerd door de gemiddelde verstreken tijd.

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;  

Zie ook

uitvoeringsgerelateerde dynamische beheerweergaven en -functies (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)