sys.dm_exec_procedure_stats (Transact-SQL)
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Devuelve estadísticas de rendimiento de agregado para los procedimientos almacenados en memoria caché. La vista devuelve una fila por cada procedimiento almacenado en memoria caché y la vigencia de la fila corresponde al tiempo que el procedimiento almacenado permanece en memoria caché. Cuando se quita un procedimiento almacenado de la memoria caché, la fila correspondiente se elimina de esta vista. En ese momento, el query_cache_removal_statistics
evento se genera de forma similar a sys.dm_exec_query_stats para SQL Server y Azure SQL Instancia administrada.
En Azure SQL Database, las vistas de administración dinámica no pueden mostrar información que afecte a la contención de la base de datos o que exponga datos acerca de otras bases de datos a las que el usuario tenga acceso. Para evitar exponer esta información, se filtran todas las filas que contienen datos que no pertenecen al inquilino conectado.
Nota:
Los resultados de sys.dm_exec_procedure_stats pueden variar con cada ejecución, ya que los datos solo reflejan las consultas finalizadas y no las todavía en curso.
Para llamar a esto desde Azure Synapse Analytics o Analytics Platform System (PDW), use el nombre sys.dm_pdw_nodes_exec_procedure_stats
. El grupo de SQL sin servidor no admite esta sintaxis en Azure Synapse Analytics.
Nombre de la columna | Tipo de datos | Descripción |
---|---|---|
database_id | int | Identificador de base de datos en el que el procedimiento almacenado reside. En Azure SQL Database, los valores son únicos dentro de una base de datos única o un grupo elástico, pero no dentro de un servidor lógico. |
object_id | int | Número de identificación de objeto del procedimiento almacenado. |
type | char(2) | Tipo del objeto: P = Procedimiento almacenado de SQL PC = Procedimiento almacenado de ensamblado (CLR) X = Procedimiento almacenado extendido |
type_desc | nvarchar(60) | Descripción del tipo de objeto: SQL_STORED_PROCEDURE CLR_STORED_PROCEDURE EXTENDED_STORED_PROCEDURE |
sql_handle | varbinary(64) | Esto se puede usar para correlacionar con las consultas de sys.dm_exec_query_stats que se ejecutaron desde este procedimiento almacenado. |
plan_handle | varbinary(64) | Identificador del plan en memoria. Este identificador es transitorio y permanece constante solo mientras el plan permanece en la memoria caché. Este valor se puede usar con la vista de administración dinámica sys.dm_exec_cached_plans. Será siempre 0x000 cuando un procedimiento almacenado nativo consulte una tabla optimizada para memoria. |
cached_time | datetime | Momento en el que el procedimiento almacenado se agregó a la caché. |
last_execution_time | datetime | Hora en que se ejecutó el procedimiento almacenado por última vez. |
execution_count | bigint | Número de veces que se ha ejecutado el procedimiento almacenado desde la última compilación. |
total_worker_time | bigint | Cantidad total de tiempo de CPU, en microsegundos, consumido por ejecuciones de este procedimiento almacenado desde que se compiló. Para los procedimientos almacenados compilados de forma nativa, total_worker_time puede no ser exacto si varias ejecuciones tardan menos de 1 milisegundo. |
last_worker_time | bigint | Tiempo de CPU, en microsegundos, consumido la última vez que se ejecutó el procedimiento almacenado. 1 |
min_worker_time | bigint | El tiempo mínimo de CPU, en microsegundos, que este procedimiento almacenado ha consumido nunca durante una sola ejecución. 1 |
max_worker_time | bigint | Tiempo máximo de CPU, en microsegundos, que este procedimiento almacenado ha consumido nunca durante una sola ejecución. 1 |
total_physical_reads | bigint | Número total de lecturas físicas realizadas por ejecuciones de este procedimiento almacenado desde que se compiló. Será siempre 0 al consultar una tabla optimizada para memoria. |
last_physical_reads | bigint | Número de lecturas físicas realizadas la última vez que se ejecutó el procedimiento almacenado. Será siempre 0 al consultar una tabla optimizada para memoria. |
min_physical_reads | bigint | Número mínimo de lecturas físicas que este procedimiento almacenado ha realizado nunca durante una sola ejecución. Será siempre 0 al consultar una tabla optimizada para memoria. |
max_physical_reads | bigint | Número máximo de lecturas físicas que este procedimiento almacenado ha realizado nunca durante una sola ejecución. Será siempre 0 al consultar una tabla optimizada para memoria. |
total_logical_writes | bigint | Número total de escrituras lógicas realizadas por ejecuciones de este procedimiento almacenado desde que se compiló. Será siempre 0 al consultar una tabla optimizada para memoria. |
last_logical_writes | bigint | El número de páginas del grupo de búferes descargó la última vez que se ejecutó el plan. Si una página ya está desfasada (modificada) no se cuenta ninguna escritura. Será siempre 0 al consultar una tabla optimizada para memoria. |
min_logical_writes | bigint | Número mínimo de escrituras lógicas que este procedimiento almacenado ha realizado nunca durante una sola ejecución. Será siempre 0 al consultar una tabla optimizada para memoria. |
max_logical_writes | bigint | Número máximo de escrituras lógicas que este procedimiento almacenado ha realizado nunca durante una sola ejecución. Será siempre 0 al consultar una tabla optimizada para memoria. |
total_logical_reads | bigint | Número total de lecturas lógicas realizadas por ejecuciones de este procedimiento almacenado desde que se compiló. Será siempre 0 al consultar una tabla optimizada para memoria. |
last_logical_reads | bigint | Número de lecturas lógicas realizadas la última vez que se ejecutó el procedimiento almacenado. Será siempre 0 al consultar una tabla optimizada para memoria. |
min_logical_reads | bigint | Número mínimo de lecturas lógicas que este procedimiento almacenado ha realizado nunca durante una sola ejecución. Será siempre 0 al consultar una tabla optimizada para memoria. |
max_logical_reads | bigint | Número máximo de lecturas lógicas que este procedimiento almacenado ha realizado nunca durante una sola ejecución. Será siempre 0 al consultar una tabla optimizada para memoria. |
total_elapsed_time | bigint | Tiempo total transcurrido, en microsegundos, para las ejecuciones completadas de este procedimiento almacenado. |
last_elapsed_time | bigint | Tiempo transcurrido, en microsegundos, para la ejecución completada más recientemente de este procedimiento almacenado. |
min_elapsed_time | bigint | Tiempo mínimo transcurrido, en microsegundos, para cualquier ejecución completada de este procedimiento almacenado. |
max_elapsed_time | bigint | Tiempo máximo transcurrido, en microsegundos, para cualquier ejecución completada de este procedimiento almacenado. |
total_spills | bigint | Número total de páginas derramadas por la ejecución de este procedimiento almacenado desde que se compiló. Se aplica a: A partir de SQL Server 2017 (14.x) CU3 |
last_spills | bigint | Número de páginas derramadas la última vez que se ejecutó el procedimiento almacenado. Se aplica a: A partir de SQL Server 2017 (14.x) CU3 |
min_spills | bigint | Número mínimo de páginas que este procedimiento almacenado ha derramado durante una sola ejecución. Se aplica a: A partir de SQL Server 2017 (14.x) CU3 |
max_spills | bigint | Número máximo de páginas que este procedimiento almacenado ha derramado durante una sola ejecución. Se aplica a: A partir de SQL Server 2017 (14.x) CU3 |
pdw_node_id | int | Identificador del nodo en el que se encuentra esta distribución. Se aplica a: Azure Synapse Analytics, Sistema de la plataforma de análisis (PDW) |
total_page_server_reads | bigint | Número total de lecturas del servidor de páginas realizadas por ejecuciones de este procedimiento almacenado desde que se compiló. Se aplica a: Hiperescala de Azure SQL Database |
last_page_server_reads | bigint | El número de lecturas del servidor de páginas realizó la última vez que se ejecutó el procedimiento almacenado. Se aplica a: Hiperescala de Azure SQL Database |
min_page_server_reads | bigint | El número mínimo de servidores de páginas lee que este procedimiento almacenado ha realizado alguna vez durante una sola ejecución. Se aplica a: Hiperescala de Azure SQL Database |
max_page_server_reads | bigint | El número máximo de servidores de páginas lee que este procedimiento almacenado ha realizado alguna vez durante una sola ejecución. Se aplica a: Hiperescala de Azure SQL Database |
1 Para los procedimientos almacenados compilados de forma nativa cuando la recopilación de estadísticas está habilitada, el tiempo de trabajo se recopila en milisegundos. Si la consulta se ejecuta en menos de un milisegundo, el valor será 0.
Permisos
En SQL Server y SQL Managed Instance, requiere el permiso VIEW SERVER STATE
.
En los objetivos de servicio Básico, S0 y S1 de SQL Database y para bases de datos en grupos elásticos, se requiere la cuenta de administrador del servidor, la cuenta de administrador Microsoft Entra o la pertenencia al ##MS_ServerStateReader##
rol del servidor. En el resto de objetivos del servicio de SQL Database, se requiere el permiso VIEW DATABASE STATE
en la base de datos o la pertenencia en el rol del servidor ##MS_ServerStateReader##
.
Permisos para SQL Server 2022 y versiones posteriores
Requiere el permiso VER ESTADO DE RENDIMIENTO DEL SERVIDOR en el servidor.
Comentarios
Las estadísticas en la vista se actualizan cuando una ejecución del procedimiento almacenado se completa.
Ejemplos
En el siguiente ejemplo se devuelve información acerca de los diez procedimientos almacenados identificados con el mayor promedio de tiempo transcurrido.
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;
Consulte también
Funciones y vistas de administración dinámica relacionadas con ejecuciones (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)