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
Base de Dados SQL do Azure
Azure SQL Managed Instance
Base 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;