sys.dm_exec_procedure_stats (Transact-SQL)
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, se genera un evento de Seguimiento de SQL de Estadísticas de rendimiento similar a sys.dm_exec_query_stats.
[!NOTA]
Una consulta inicial de sys.dm_exec_procedure_stats podría producir resultados imprecisos si hay una carga de trabajo ejecutándose actualmente en el servidor. Pueden determinarse resultados más exactos si se vuelve a ejecutar la consulta.
Nombre de columna |
Tipo de datos |
Descripción |
---|---|---|
database_id |
int |
Identificador de base de datos en el que el procedimiento almacenado reside. |
object_id |
int |
Número de identificación de objeto del procedimiento almacenado. |
tipo |
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) |
Se puede utilizar para correlacionar con las consultas en sys.dm_exec_query_stats que se ejecutaron desde dentro de 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 caché. Este valor se puede usar con la vista de administración dinámica de sys.dm_exec_cached_plans: |
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 que se compiló por última vez. |
total_worker_time |
bigint |
Tiempo total de CPU, en microsegundos, consumido por las ejecuciones de este procedimiento almacenado desde que se compiló. |
last_worker_time |
bigint |
Tiempo de CPU, en microsegundos, consumido la última vez que se ejecutó el procedimiento almacenado. |
min_worker_time |
bigint |
Tiempo mínimo de CPU, en microsegundos, que ha utilizado este procedimiento almacenado durante una ejecución. |
max_worker_time |
bigint |
Tiempo máximo de CPU, en microsegundos, que ha utilizado este procedimiento almacenado durante una ejecución. |
total_physical_reads |
bigint |
Número total de lecturas físicas realizadas por las ejecuciones de este procedimiento almacenado desde que se compiló. |
last_physical_reads |
bigint |
Número de lecturas físicas realizadas la última vez que se ejecutó el procedimiento almacenado. |
min_physical_reads |
bigint |
Número mínimo de lecturas físicas que ha realizado este procedimiento almacenado durante una ejecución. |
max_physical_reads |
bigint |
Número máximo de lecturas físicas que ha realizado este procedimiento almacenado durante una ejecución. |
total_logical_writes |
bigint |
Número total de lecturas lógicas realizadas por las ejecuciones de este procedimiento almacenado desde que se compiló. |
last_logical_writes |
bigint |
Número de páginas del grupo de búferes modificadas la última vez que se ejecutó el plan. Si una página ya se ha modificado, no se cuentan las escrituras. |
min_logical_writes |
bigint |
Número mínimo de lecturas lógicas que ha realizado este procedimiento almacenado durante una ejecución. |
max_logical_writes |
bigint |
Número máximo de lecturas lógicas que ha realizado este procedimiento almacenado durante una ejecución. |
total_logical_reads |
bigint |
Número total de lecturas lógicas realizadas por las ejecuciones de este procedimiento almacenado desde que se compiló. |
last_logical_reads |
bigint |
Número de lecturas lógicas realizadas la última vez que se ejecutó el procedimiento almacenado. |
min_logical_reads |
bigint |
Número mínimo de lecturas lógicas que ha realizado este procedimiento almacenado durante una ejecución. |
max_logical_reads |
bigint |
Número máximo de lecturas lógicas que ha realizado este procedimiento almacenado durante una ejecución. |
total_elapsed_time |
bigint |
Tiempo total transcurrido, en microsegundos, hasta la finalización de las ejecuciones de este procedimiento almacenado. |
last_elapsed_time |
bigint |
Tiempo transcurrido, en microsegundos, hasta la finalización de la ejecución más reciente de este procedimiento almacenado. |
min_elapsed_time |
bigint |
Tiempo mínimo transcurrido, en microsegundos, hasta que se completa cualquier ejecución de este procedimiento almacenado. |
max_elapsed_time |
bigint |
Tiempo máximo transcurrido, en microsegundos, hasta que se completa cualquier ejecución de este procedimiento almacenado. |
Permisos
Necesita el permiso VIEW SERVER STATE 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;
Vea también
Referencia
Funciones y vistas de administración dinámica relacionadas con ejecuciones (Transact-SQL)
sys.dm_exec_sql_text (Transact-SQL)
sys.dm_exec_query_stats (Transact-SQL)
Funciones y vistas de administración dinámica (Transact-SQL)