Compartilhar via


sys.dm_exec_procedure_stats (Transact-SQL)

Retorna estatísticas de desempenho de agregação 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.

No Banco de dados SQL do Windows Azure, as exibições de gerenciamento dinâmico não podem expor informações que afetarão a contenção do banco de dados ou informações sobre outros bancos de dados aos quais o usuário tem acesso. Para evitar a exposição dessas informações, cada linha que contém os dados que não pertencem ao locatário conectado será filtrada.

Dica

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.

Aplica-se a: SQL Server (do SQL Server 2008 à versão atual), Banco de dados SQL do Windows Azure (da versão inicial até a versão atual).

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 permanece no cache. Esse valor pode ser usado com a exibição de gerenciamento dinâmico sys.dm_exec_cached_plans.

Sempre será 0x000 quando um procedimento armazenado compilado nativamente consultar uma tabela com otimização de memória.

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.

Para procedimentos armazenados compilados de modo nativo, total_worker_time talvez não seja preciso se várias execuções levarem menos de 1 milissegundo.

last_worker_time

bigint

Tempo de CPU, em microssegundos, consumido na última vez em que o procedimento armazenado foi executado. 1

min_worker_time

bigint

Tempo mínimo de CPU, em microssegundos, que este procedimento armazenado consumiu durante uma única execução. 1

max_worker_time

bigint

Tempo máximo de CPU, em microssegundos, que este procedimento armazenado consumiu durante uma única execução. 1

total_physical_reads

bigint

Número total de leituras físicas efetuadas por execuções deste procedimento armazenado desde sua compilação.

Sempre será 0 ao consultar uma tabela com otimização de memória.

last_physical_reads

bigint

Número de leituras físicas efetuadas na última vez em que o procedimento armazenado foi executado.

Sempre será 0 ao consultar uma tabela com otimização de memória.

min_physical_reads

bigint

Número mínimo de leituras físicas que este procedimento armazenado efetuou durante uma única execução.

Sempre será 0 ao consultar uma tabela com otimização de memória.

max_physical_reads

bigint

Número máximo de leituras físicas que este procedimento armazenado efetuou durante uma única execução.

Sempre será 0 ao consultar uma tabela com otimização de memória.

total_logical_writes

bigint

Número total de gravações lógicas efetuadas por execuções deste procedimento armazenado desde sua compilação.

Sempre será 0 ao consultar uma tabela com otimização de memória.

last_logical_writes

bigint

O número de páginas do pool de buffers que foram sujas na última vez em que o plano foi executado. Se uma página já estiver suja (modificada), nenhuma gravação será contabilizada.

Sempre será 0 ao consultar uma tabela com otimização de memória.

min_logical_writes

bigint

Número mínimo de gravações lógicas que este procedimento armazenado efetuou durante uma única execução.

Sempre será 0 ao consultar uma tabela com otimização de memória.

max_logical_writes

bigint

Número máximo de gravações lógicas que este procedimento armazenado efetuou durante uma única execução.

Sempre será 0 ao consultar uma tabela com otimização de memória.

total_logical_reads

bigint

Número total de leituras lógicas efetuadas por execuções deste procedimento armazenado desde sua compilação.

Sempre será 0 ao consultar uma tabela com otimização de memória.

last_logical_reads

bigint

Número de leituras lógicas efetuadas na última vez em que o procedimento armazenado foi executado.

Sempre será 0 ao consultar uma tabela com otimização de memória.

min_logical_reads

bigint

Número mínimo de leituras lógicas que este procedimento armazenado efetuou durante uma única execução.

Sempre será 0 ao consultar uma tabela com otimização de memória.

max_logical_reads

bigint

Número máximo de leituras lógicas que este procedimento armazenado efetuou durante uma única execução.

Sempre será 0 ao consultar uma tabela com otimização de memória.

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.

1 Para procedimentos armazenados compilados de modo nativo, quando a coleta de estatísticas estiver habilitada, o tempo de trabalho será coletado em milissegundos. Se a consulta for executada em menos de um milissegundo, o valor será 0.

Permissões

Requer 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;

Consulte também

Referência

Funções e exibições de gerenciamento dinâmico relacionadas à execução (Transact-SQL)

sys.dm_exec_sql_text (Transact-SQL)

sys.dm_exec_query_stats (Transact-SQL)

Exibições e funções de gerenciamento dinâmico (Transact-SQL)

sys.dm_exec_trigger_stats (Transact-SQL)