sys.dm_exec_procedure_stats (Transact-SQL)
Retorna estatísticas de desempenho agregadas para procedimentos armazenados em cache. A exibição retorna uma linha para cada plano de procedimento armazenado em cache, e o tempo de vida da linha é igual ao tempo em que o procedimento armazenado permanece em cache. Quando um procedimento armazenado é removido do cache, a linha correspondente é eliminada da exibição. Nesse momento, é gerado um evento de rastreamento do SQL de Estatísticas de Desempenho similar a sys.dm_exec_query_stats.
Observação |
---|
Uma consulta inicial de sys.dm_exec_procedure_stats pode produzir resultados inexatos se houver uma carga de trabalho em execução no servidor. Mais resultados precisos podem ser determinados pela reexecução da consulta. |
Nome da coluna |
Tipo de dados |
Descrição |
---|---|---|
database_id |
int |
ID do banco de dados no qual o procedimento armazenado reside. |
object_id |
int |
Número de identificação de objeto do procedimento armazenado. |
type |
char(2) |
Tipo do objeto: P = Procedimento armazenado SQL PC = Procedimento armazenado de assembly (CLR) X = Procedimento armazenado estendido |
type_desc |
nvarchar(60) |
Descrição do tipo de objeto: SQL_STORED_PROCEDURE CLR_STORED_PROCEDURE EXTENDED_STORED_PROCEDURE |
sql_handle |
varbinary(64) |
Pode ser usado para correlacionar com as consultas de sys.dm_exec_query_stats que foram executadas a partir deste procedimento armazenado. |
plan_handle |
varbinary(64) |
Identificador do plano na memória. Esse identificador é transitório e permanece constante somente enquanto o plano permanecer no cache. Esse valor pode ser usado com a exibição de gerenciamento dinâmico sys.dm_exec_cached_plans. |
cached_time |
datetime |
Hora em que o procedimento armazenado foi adicionado ao cache. |
cached_time |
datetime |
Hora em que o procedimento armazenado foi adicionado ao cache. |
last_execution_time |
datetime |
Hora em que o procedimento armazenado foi executado pela última vez. |
execution_count |
bigint |
Número de vezes que o procedimento armazenado foi executado desde sua última compilação. |
total_worker_time |
bigint |
Tempo total de CPU, em microssegundos, consumido por execuções deste procedimento armazenado desde sua compilação. |
last_worker_time |
bigint |
Tempo de CPU, em microssegundos, consumido na última vez em que o procedimento armazenado foi executado. |
min_worker_time |
bigint |
Tempo máximo de CPU, em microssegundos, que este procedimento armazenado consumiu durante uma única execução. |
max_worker_time |
bigint |
Tempo máximo de CPU, em microssegundos, que este procedimento armazenado consumiu durante uma única execução. |
total_physical_reads |
bigint |
Número total de leituras físicas efetuadas por execuções deste procedimento armazenado desde sua compilação. |
last_physical_reads |
bigint |
Número de leituras físicas efetuadas na última vez em que o procedimento armazenado foi executado. |
min_physical_reads |
bigint |
Número mínimo de leituras físicas que este procedimento armazenado efetuou durante uma única execução. |
max_physical_reads |
bigint |
Número máximo de leituras físicas que este procedimento armazenado efetuou durante uma única execução. |
total_logical_writes |
bigint |
Número total de gravações lógicas efetuadas por execuções deste procedimento armazenado desde sua compilação. |
last_logical_writes |
bigint |
Número de gravações lógicas efetuadas na última vez em que o procedimento armazenado foi executado. |
min_logical_writes |
bigint |
Número mínimo de gravações lógicas que este procedimento armazenado efetuou durante uma única execução. |
max_logical_writes |
bigint |
Número máximo de gravações lógicas que este procedimento armazenado efetuou durante uma única execução. |
total_logical_reads |
bigint |
Número total de leituras lógicas efetuadas por execuções deste procedimento armazenado desde sua compilação. |
last_logical_reads |
bigint |
Número de leituras lógicas efetuadas na última vez em que o procedimento armazenado foi executado. |
min_logical_reads |
bigint |
Número mínimo de leituras lógicas que este procedimento armazenado efetuou durante uma única execução. |
max_logical_reads |
bigint |
Número máximo de leituras lógicas que este procedimento armazenado efetuou durante uma única execução. |
total_elapsed_time |
bigint |
Tempo decorrido total, em microssegundos, de execuções concluídas deste procedimento armazenado. |
last_elapsed_time |
bigint |
Tempo decorrido, em microssegundos, da execução concluída mais recente deste procedimento armazenado. |
min_elapsed_time |
bigint |
Tempo decorrido mínimo, em microssegundos, de qualquer execução concluída deste procedimento armazenado. |
max_elapsed_time |
bigint |
Tempo decorrido máximo, em microssegundos, de qualquer execução concluída deste procedimento armazenado. |
Permissões
Exige a permissão VIEW SERVER STATE no servidor.
Comentários
As estatísticas da exibição serão atualizadas quando uma execução de procedimento armazenado for concluída.
Exemplos
O exemplo a seguir retorna informações sobre os dez principais procedimentos armazenados identificados por tempo médio decorrido.
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;