Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2016 (13.x) e versões
posteriores Azure SQL Database
AzureSQL Managed Instance
SQL database in Microsoft Fabric
Retorna estatísticas de desempenho agregadas para funções armazenadas em cache. A visão retorna uma linha para cada plano de função armazenado em cache, e o tempo de vida da linha é enquanto a função permanecer em cache. Quando uma função é removida do cache, a linha correspondente é eliminada dessa exibição. Nesse momento, um evento de rastreamento SQL do Performance Statistics é gerado semelhante ao sys.dm_exec_query_stats. Retorna informações sobre funções escalares, incluindo funções na memória e funções escalares CLR. Não retorna informações sobre funções com valor de tabela e sobre funções escalares que estão embutidas com Scalar UDF Inlining.
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_function_stats podem variar com cada execução, pois os dados refletem apenas consultas concluídas, e não aquelas ainda em andamento.
| Nome da coluna | Tipo de dados | Description |
|---|---|---|
| database_id | int | ID do banco de dados no qual a função reside. 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 da função. |
| type | char(2) | Tipo do objeto: FN = Funções com valor escalar |
| type_desc | Nvarchar(60) | Descrição do tipo de objeto: SQL_SCALAR_FUNCTION |
| sql_handle | varbinary(64) | Isso pode ser usado para correlacionar com consultas em sys.dm_exec_query_stats que foram executadas de dentro dessa função. |
| 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 uma função compilada nativamente consulta uma tabela com otimização de memória. |
| cached_time | datetime | Hora em que a função foi adicionada ao cache. |
| hora_da_última_execução | datetime | Última vez em que a função foi executada. |
| execution_count | bigint | Número de vezes que a função foi executada desde a última compilação. |
| total_worker_time | bigint | Quantidade total de tempo de CPU, em microssegundos, que foi consumido pelas execuções desta função desde que foi compilada. Para funções compiladas nativamente, total_worker_time pode não ser preciso se muitas execuções levarem menos de 1 milissegundo. |
| last_worker_time | bigint | Tempo da CPU, em microssegundos, que foi consumido na última vez que a função foi executada. 1 |
| min_worker_time | bigint | Tempo mínimo de CPU, em microssegundos, que esta função já consumiu durante uma única execução. 1 |
| max_worker_time | bigint | Tempo máximo de CPU, em microssegundos, que esta função já consumiu durante uma única execução. 1 |
| total_physical_reads | bigint | Número total de leituras físicas realizadas por execuções desta função desde que foi compilada. Será sempre 0 ao consultar uma tabela otimizada para a memória. |
| last_physical_reads | bigint | Número de leituras físicas realizadas na última vez que a função foi executada. Será sempre 0 ao consultar uma tabela otimizada para a memória. |
| min_physical_reads | bigint | Número mínimo de leituras físicas que esta função já executou durante uma única execução. Será sempre 0 ao consultar uma tabela otimizada para a memória. |
| max_physical_reads | bigint | Número máximo de leituras físicas que esta função já executou durante uma única execução. Será sempre 0 ao consultar uma tabela otimizada para a memória. |
| total_logical_writes | bigint | Número total de gravações lógicas realizadas por execuções desta função desde que foi compilada. Será sempre 0 ao consultar uma tabela otimizada para a memória. |
| last_logical_writes | bigint | Número do número de páginas do buffer pool sujas na ú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 | Número mínimo de gravações lógicas que esta função já executou durante uma única execução. Será sempre 0 ao consultar uma tabela otimizada para a memória. |
| max_logical_writes | bigint | Número máximo de gravações lógicas que esta função já executou durante uma única execução. Será sempre 0 ao consultar uma tabela otimizada para a memória. |
| total_logical_reads | bigint | Número total de leituras lógicas realizadas por execuções desta função desde que foi compilada. Será sempre 0 ao consultar uma tabela otimizada para a memória. |
| últimas_leituras_lógicas | bigint | Número de leituras lógicas executadas na última vez que a função foi executada. Será sempre 0 ao consultar uma tabela otimizada para a memória. |
| min_logical_reads | bigint | Número mínimo de leituras lógicas que esta função já executou durante uma única execução. Será sempre 0 ao consultar uma tabela otimizada para a memória. |
| max_logical_reads | bigint | Número máximo de leituras lógicas que esta função já executou durante uma única execução. Será sempre 0 ao consultar uma tabela otimizada para a memória. |
| total_elapsed_time | bigint | Tempo total decorrido, em microssegundos, para execuções concluídas desta função. |
| tempo_decorrido_último | bigint | Tempo decorrido, em microssegundos, para a execução concluída mais recentemente desta função. |
| min_elapsed_time | bigint | Tempo mínimo decorrido, em microssegundos, para qualquer execução concluída desta função. |
| max_elapsed_time | bigint | Tempo máximo decorrido, em microssegundos, para qualquer execução concluída desta função. |
| total_page_server_reads | bigint | Número total de leituras do servidor de página realizadas pelas execuções desta função desde que foi compilada. Aplica-se a: Hiperescala do Banco de Dados SQL do Azure. |
| last_page_server_reads | bigint | Número de leituras do servidor de página executadas na última vez que a função foi executada. Aplica-se a: Hiperescala do Banco de Dados SQL do Azure. |
| min_page_server_reads | bigint | Número mínimo de leituras do servidor de página que esta função 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 essa função já executou durante uma única execução. Aplica-se a: Hiperescala do Banco de Dados SQL do Azure. |
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.
Examples
O exemplo a seguir retorna informações sobre as dez principais funções identificadas pelo tempo médio decorrido.
SELECT TOP 10 d.object_id, d.database_id, OBJECT_NAME(object_id, database_id) 'function 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_function_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_stats (Transact-SQL)
sys.dm_exec_trigger_stats (Transact-SQL)
sys.dm_exec_procedure_stats (Transact-SQL)