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)