Share via


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 plan de 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 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.

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)

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é.

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áximo 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 escrituras lógicas realizadas por las ejecuciones de este procedimiento almacenado desde que se compiló.

last_logical_writes

bigint

Número de escrituras lógicas realizadas la última vez que se ejecutó el procedimiento almacenado.

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

Requiere el permiso VIEW SERVER STATE en el servidor.

Notas

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;