Compartilhar via


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, 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çãoObservaçã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;
GO