sys.dm_exec_procedure_stats (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada SQL do AzureBanco de Dados SQL do Azure Synapse Analyticsno Microsoft Fabric

Devolve estatísticas de desempenho agregadas para procedimentos armazenados em cache. A vista devolve uma linha para cada plano de procedimento armazenado em cache, e a vida útil da linha é a mesma enquanto o procedimento armazenado permanece em cache. Quando um procedimento armazenado é removido da cache, a linha correspondente é eliminada desta visão. Nessa altura, o query_cache_removal_statistics evento é levantado de forma semelhante ao sys.dm_exec_query_stats para SQL Server e Azure SQL Managed Instance.

No Base de Dados SQL do Azure, as vistas de gestão dinâmica não podem expor informações que possam afetar a contenção da base de dados ou informações sobre outras bases de dados a que o utilizador tenha acesso. Para evitar a exposição dessas informações, todas as linhas que contêm dados que não pertencem ao locatário conectado são filtradas.

Note

Os resultados de sys.dm_exec_procedure_stats podem variar em cada execução, pois os dados apenas refletem consultas finalizadas, e não as que ainda estão em andamento. Para chamar isto do Azure Synapse Analytics, use o nome sys.dm_pdw_nodes_exec_procedure_stats. Essa sintaxe não é suportada pelo pool SQL sem servidor no Azure Synapse Analytics.

Nome da coluna Tipo de dados Descrição
database_id int ID da base de dados onde reside o procedimento armazenado.

No Banco de Dados SQL do Azure, os valores são exclusivos em um único banco de dados ou pool elástico, mas não em um servidor lógico.
object_id int Número de identificação do objeto do procedimento armazenado.
tipo char(2) Tipo do objeto:

P = procedimento armazenado SQL

PC = Procedimento armazenado 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) Isto pode ser usado para correlacionar com consultas em sys.dm_exec_query_stats que foram executadas dentro deste procedimento armazenado.
plan_handle varbinary(64) Identificador do plano na memória. Esse identificador é transitório e permanece constante apenas enquanto o plano permanece no cache. Esse valor pode ser usado com a sys.dm_exec_cached_plans visualização de gerenciamento dinâmico.

Será sempre 0x000 quando um procedimento armazenado compilado nativamente consulta uma tabela otimizada para memória.
cached_time datetime Tempo em que o procedimento armazenado foi adicionado à cache.
hora_da_última_execução datetime Última vez em que o procedimento armazenado foi executado.
execution_count bigint O número de vezes que o procedimento armazenado foi executado desde a última compilação.
total_worker_time bigint A quantidade total de tempo de CPU, em microssegundos, consumida pelas execuções deste procedimento armazenado desde a sua compilação.

Para procedimentos armazenados compilados nativamente, total_worker_time podem não ser precisos se muitas execuções demorarem menos de 1 milissegundo.
last_worker_time bigint Tempo de CPU, em microssegundos, que foi consumido na última vez que o procedimento armazenado foi executado. 1
min_worker_time bigint O tempo mínimo de CPU, em microssegundos, que este procedimento armazenado alguma vez consumiu durante uma única execução. 1
max_worker_time bigint O tempo máximo de CPU, em microssegundos, que este procedimento armazenado alguma vez consumiu durante uma única execução. 1
total_physical_reads bigint O número total de leituras físicas realizadas pelas execuções deste procedimento armazenado desde a sua compilação.

Será sempre 0 ao consultar uma tabela otimizada para a memória.
last_physical_reads bigint O número de leituras físicas realizadas na última vez que o procedimento armazenado foi executado.

Será sempre 0 ao consultar uma tabela otimizada para a memória.
min_physical_reads bigint O número mínimo de leituras físicas que este procedimento armazenado alguma vez realizou durante uma única execução.

Será sempre 0 ao consultar uma tabela otimizada para a memória.
max_physical_reads bigint O número máximo de leituras físicas que este procedimento armazenado alguma vez realizou durante uma única execução.

Será sempre 0 ao consultar uma tabela otimizada para a memória.
total_logical_writes bigint O número total de escritas lógicas realizadas pelas execuções deste procedimento armazenado desde a sua compilação.

Será sempre 0 ao consultar uma tabela otimizada para a memória.
last_logical_writes bigint O número de páginas de pool tampão sujo da última vez que o plano foi executado. Se uma página já estiver suja (modificada), nenhuma gravação será contada.

Será sempre 0 ao consultar uma tabela otimizada para a memória.
min_logical_writes bigint O número mínimo de escritas lógicas que este procedimento armazenado alguma vez realizou durante uma única execução.

Será sempre 0 ao consultar uma tabela otimizada para a memória.
max_logical_writes bigint O número máximo de escritas lógicas que este procedimento armazenado alguma vez realizou durante uma única execução.

Será sempre 0 ao consultar uma tabela otimizada para a memória.
total_logical_reads bigint O número total de leituras lógicas realizadas pelas execuções deste procedimento armazenado desde que foi compilado.

Será sempre 0 ao consultar uma tabela otimizada para a memória.
últimas_leituras_lógicas bigint O número de leituras lógicas realizadas na última execução do procedimento armazenado.

Será sempre 0 ao consultar uma tabela otimizada para a memória.
min_logical_reads bigint O número mínimo de leituras lógicas que este procedimento armazenado alguma vez realizou durante uma única execução.

Será sempre 0 ao consultar uma tabela otimizada para a memória.
max_logical_reads bigint O número máximo de leituras lógicas que este procedimento armazenado alguma vez realizou durante uma única execução.

Será sempre 0 ao consultar uma tabela otimizada para a memória.
total_elapsed_time bigint O tempo total decorrido, em microssegundos, para as execuções concluídas deste procedimento armazenado.
tempo_decorrido_último bigint O tempo decorrido, em microssegundos, para a execução mais recente deste procedimento armazenado.
min_elapsed_time bigint O tempo mínimo decorrido, em microssegundos, para qualquer execução completa deste procedimento armazenado.
max_elapsed_time bigint O tempo máximo decorrido, em microssegundos, para qualquer execução completa deste procedimento armazenado.
total_spills bigint O número total de páginas divulgadas pela execução deste procedimento armazenado desde a sua compilação.

Aplica-se a: A partir do SQL Server 2017 (14.x) CU3
last_spills bigint O número de páginas derramadas na última vez que o procedimento armazenado foi executado.

Aplica-se a: A partir do SQL Server 2017 (14.x) CU3
min_spills bigint O número mínimo de páginas que este procedimento armazenado alguma vez revelou durante uma única execução.

Aplica-se a: A partir do SQL Server 2017 (14.x) CU3
max_spills bigint O número máximo de páginas que este procedimento armazenado alguma vez revelou durante uma única execução.

Aplica-se a: A partir do SQL Server 2017 (14.x) CU3
pdw_node_id int O identificador do nó em que esta distribuição se encontra.

Aplica-se a: Azure Synapse Analytics
total_page_server_reads bigint O número total de leituras do servidor de páginas realizadas pelas execuções deste procedimento armazenado desde a sua compilação.

Aplica-se a: Hiperescala do Banco de Dados SQL do Azure
last_page_server_reads bigint O número de leituras do servidor de páginas realizadas na última execução do procedimento armazenado.

Aplica-se a: Hiperescala do Banco de Dados SQL do Azure
min_page_server_reads bigint O número mínimo de leituras do servidor de páginas que este procedimento armazenado alguma vez realizou durante uma única execução.

Aplica-se a: Hiperescala do Banco de Dados SQL do Azure
max_page_server_reads bigint O número máximo de leituras de servidor de páginas que este procedimento armazenado alguma vez realizou durante uma única execução.

Aplica-se a: Hiperescala do Banco de Dados SQL do Azure

1 Para procedimentos armazenados compilados nativamente, quando a recolha de estatísticas está ativada, o tempo de trabalho é recolhido em milissegundos. Se a consulta for executada em menos de um milissegundo, o valor será 0.

Permissions

No SQL Server e na Instância Gerenciada do SQL, requer VIEW SERVER STATE permissão.

No Banco de Dados SQL Basic, S0e S1 objetivos de serviço e para bancos de dados em pools elásticos , a conta de de administrador do servidor, a conta de de administrador do Microsoft Entra ou a associação aode função de servidor ##MS_ServerStateReader## é necessária. Em todos os outros objetivos de serviço do Banco de dados SQL, é necessária a permissão VIEW DATABASE STATE no banco de dados ou a associação à função de servidor ##MS_ServerStateReader##.

Permissões para SQL Server 2022 e posterior

Requer VIEW permissão ESTADO DE DESEMPENHO DO SERVIDOR no servidor.

Observações

As estatísticas na vista são atualizadas quando a execução de um procedimento armazenado é concluída.

Examples

O exemplo seguinte retorna informações sobre os dez principais procedimentos armazenados identificados pelo 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;