Partilhar via


sys.dm_exec_procedure_stats (Transact-SQL)

Aplica-se a:Banco de Dados SQL dodo AzureInstância Gerenciada SQL do Azuredo Azure Synapse Analyticsdo Analytics Platform System (PDW)Banco de Dados SQL no 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 Banco de Dados SQL do Azure, as exibições de gerenciamento dinâmico não podem expor informações que possam afetar a contenção do banco de dados ou expor informações sobre outros bancos de dados aos quais o usuário tem 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.

Observação

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 isso do Azure Synapse Analytics ou do Analytics Platform System (PDW), 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 Description
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.
type 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, Analytics Platform System (PDW)
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 a permissão VIEW SERVER PERFORMANCE STATE 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;  

Ver também

Visualizações e funções de gerenciamento dinâmico relacionadas à execução (Transact-SQL)
sys.dm_exec_sql_text (Transact-SQL)
sys.dm_exec_query_plan (Transact-SQL)
sys.dm_exec_query_stats (Transact-SQL)
sys.dm_exec_trigger_stats (Transact-SQL)
sys.dm_exec_cached_plans (Transact-SQL)