sys.dm_exec_function_stats (Transact-SQL)

Aplica-se a: SQL Server 2016 (13.x) e versões posteriores Base de Dados SQL do Azure Azure SQL Managed InstanceBase de dados SQL no 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 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_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 Descrição
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.
tipo 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.
total_version_reads bigint Número total de versões de linhas lidas de todos os armazenamentos de versões por execuções desta função desde que foi compilada. Para mais informações, consulte Métricas de leitura de versão.

Aplica-se a: Base de Dados SQL do Azure e SQL database no Microsoft Fabric.
last_version_reads bigint Número de versões de linhas lidas de todas as memórias da última vez que a função foi executada.

Aplica-se a: Base de Dados SQL do Azure e SQL database no Microsoft Fabric.
min_version_reads bigint O número mínimo de versões de linhas que esta função alguma vez leu armazena de todas as versões durante uma única execução.

Aplica-se a: Base de Dados SQL do Azure e SQL database no Microsoft Fabric.
max_version_reads bigint O número máximo de versões de linhas que esta função alguma vez leu armazena de todas as versões durante uma única execução.

Aplica-se a: Base de Dados SQL do Azure e SQL database no Microsoft Fabric.

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.

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;