sys.dm_exec_procedure_stats (Transact-SQL)
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure PDW (Sistema de Plataforma de Análise) do Azure Synapse Analytics
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, o query_cache_removal_statistics
evento é gerado de forma semelhante ao sys.dm_exec_query_stats para SQL Server e Instância Gerenciada de SQL do Azure.
No Banco de Dados SQL do Azure, as exibições de gerenciamento dinâmico não podem expor informações que afetariam 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 a cada execução, pois os dados refletem apenas as consultas concluídas e não as que ainda estão em andamento.
Para chamar isso do Azure Synapse Analytics ou do PDW (Analytics Platform System), use o nome sys.dm_pdw_nodes_exec_procedure_stats
. Não há suporte a essa sintaxe para o pool de SQL sem servidor no Azure Synapse Analytics.
Nome da coluna | Tipo de dados | Descrição |
---|---|---|
database_id | int | ID do banco de dados no qual o procedimento armazenado reside. No Banco de Dados SQL do Azure, os valores são exclusivos em um único banco de dados ou em um pool elástico, mas não em um servidor lógico. |
object_id | int | Número de identificação de objeto do procedimento armazenado. |
tipo | 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) | Isso pode ser usado para correlacionar com consultas em sys.dm_exec_query_stats que foram executadas de dentro desse 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 | 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, que foi consumida pelas execuções desse procedimento armazenado desde que ele foi compilado. Para procedimentos armazenados compilados de modo nativo, o total_worker_time pode não ser 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 | O tempo mínimo de CPU, em microssegundos, que esse procedimento armazenado já consumiu durante uma única execução. 1 |
max_worker_time | bigint | O tempo máximo de CPU, em microssegundos, que esse procedimento armazenado já consumiu durante uma única execução. 1 |
total_physical_reads | bigint | O número total de leituras físicas executadas por execuções desse procedimento armazenado desde que ele foi compilado. Sempre será 0 ao consultar uma tabela com otimização de memória. |
last_physical_reads | bigint | O número de leituras físicas executadas na última vez que o procedimento armazenado foi executado. Sempre será 0 ao consultar uma tabela com otimização de memória. |
min_physical_reads | bigint | O número mínimo de leituras físicas que esse procedimento armazenado já executou durante uma única execução. Sempre será 0 ao consultar uma tabela com otimização de memória. |
max_physical_reads | bigint | O número máximo de leituras físicas que esse procedimento armazenado já executou durante uma única execução. Sempre será 0 ao consultar uma tabela com otimização de memória. |
total_logical_writes | bigint | O número total de gravações lógicas executadas por execuções desse procedimento armazenado desde que ele foi compilado. Sempre será 0 ao consultar uma tabela com otimização de memória. |
last_logical_writes | bigint | O número de páginas do buffer pool ficou sujo na última vez 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 | O número mínimo de gravações lógicas que esse procedimento armazenado já executou durante uma única execução. Sempre será 0 ao consultar uma tabela com otimização de memória. |
max_logical_writes | bigint | O número máximo de gravações lógicas que esse procedimento armazenado já executou durante uma única execução. Sempre será 0 ao consultar uma tabela com otimização de memória. |
total_logical_reads | bigint | O número total de leituras lógicas executadas por execuções desse procedimento armazenado desde que ele foi compilado. Sempre será 0 ao consultar uma tabela com otimização de memória. |
last_logical_reads | bigint | O número de leituras lógicas executadas na última vez que o procedimento armazenado foi executado. Sempre será 0 ao consultar uma tabela com otimização de memória. |
min_logical_reads | bigint | O número mínimo de leituras lógicas que esse procedimento armazenado já executou durante uma única execução. Sempre será 0 ao consultar uma tabela com otimização de memória. |
max_logical_reads | bigint | O número máximo de leituras lógicas que esse procedimento armazenado já executou durante uma única execução. Sempre será 0 ao consultar uma tabela com otimização de memória. |
total_elapsed_time | bigint | O tempo total decorrido, em microssegundos, para execuções concluídas desse procedimento armazenado. |
last_elapsed_time | bigint | O tempo decorrido, em microssegundos, para a execução concluída mais recentemente desse procedimento armazenado. |
min_elapsed_time | bigint | O tempo mínimo decorrido, em microssegundos, para qualquer execução concluída desse procedimento armazenado. |
max_elapsed_time | bigint | O tempo máximo decorrido, em microssegundos, para qualquer execução concluída desse procedimento armazenado. |
total_spills | bigint | O número total de páginas derramadas pela execução desse procedimento armazenado desde que ele foi compilado. 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 esse procedimento armazenado já derramou 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 esse procedimento armazenado já derramou 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 essa distribuição está ativada. 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ágina executadas por execuções desse procedimento armazenado desde que ele foi compilado. 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ágina executadas na última vez que o procedimento armazenado foi executado. 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ágina que esse procedimento armazenado já executou 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 do servidor de página que esse procedimento armazenado já executou durante uma única execução. Aplica-se a: Hiperescala do Banco de Dados SQL do Azure |
1 Para procedimentos armazenados compilados nativamente quando a coleta de estatísticas está habilitada, o tempo de trabalho é coletado em milissegundos. Se a consulta for executada em menos de um milissegundo, o valor será 0.
Permissões
No SQL Server e na Instância Gerenciada de SQL, requer a permissão VIEW SERVER STATE
.
Nos objetivos de serviço Básico, S0 e S1 do Banco de Dados SQL e para bancos de dados em pools elásticos, a conta de administrador do servidor, a conta de administrador do Microsoft Entra ou a ##MS_ServerStateReader##
associação na função de servidor são necessárias. Em todos os outros objetivos de serviço do Banco de Dados SQL, a permissão VIEW DATABASE STATE
no banco de dados ou a associação à função de servidor ##MS_ServerStateReader##
são necessárias.
Permissões do SQL Server 2022 e posteriores
É necessária a permissão VIEW SERVER PERFORMANCE 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;
Confira também
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_plan (Transact-SQL)
sys.dm_exec_query_stats (Transact-SQL)
sys.dm_exec_trigger_stats (Transact-SQL)
sys.dm_exec_cached_plans (Transact-SQL)