sys.dm_exec_function_stats (Transact-SQL)
Se aplica a: SQL Server 2016 (13.x) y versiones posteriores Base de datos de Azure SQL Azure SQL Managed Instance
Devuelve estadísticas de rendimiento de agregado para las funciones en memoria caché. La vista devuelve una fila por cada plan de función almacenado en memoria caché y la vigencia de la fila corresponde al tiempo que la función permanece en memoria caché. Cuando se quita una función de la memoria caché, la fila correspondiente se elimina de esta vista. En ese momento, se genera un evento de Seguimiento de SQL de estadísticas de rendimiento similar a sys.dm_exec_query_stats. Devuelve información sobre las funciones escalares, incluidas las funciones en memoria y las funciones escalares CLR. No devuelve información sobre las funciones con valores de tabla y sobre las funciones escalares insertadas con la función de inserción escalar de UDF.
En Azure SQL Database, las vistas de administración dinámica no pueden mostrar información que afecte a la contención de la base de datos o que exponga datos acerca de otras bases de datos a las que el usuario tenga acceso. Para evitar exponer esta información, se filtran todas las filas que contienen datos que no pertenecen al inquilino conectado.
Nota:
Los resultados de sys.dm_exec_function_stats pueden variar con cada ejecución, ya que los datos solo reflejan las consultas finalizadas y no las que todavía están en curso.
Nombre de la columna | Tipo de datos | Descripción |
---|---|---|
database_id | int | Identificador de base de datos en que reside la función. En Azure SQL Database, los valores son únicos dentro de una base de datos única o un grupo elástico, pero no dentro de un servidor lógico. |
object_id | int | Número de identificación del objeto de la función. |
type | char(2) | Tipo del objeto: FN = Funciones escalares |
type_desc | nvarchar(60) | Descripción del tipo de objeto: SQL_SCALAR_FUNCTION |
sql_handle | varbinary(64) | Esto se puede usar para correlacionar con las consultas de sys.dm_exec_query_stats que se ejecutaron desde esta función. |
plan_handle | varbinary(64) | Identificador del plan en memoria. Este identificador es transitorio y permanece constante solo mientras el plan permanece en la memoria caché. Este valor se puede usar con la vista de administración dinámica sys.dm_exec_cached_plans. Será siempre 0x000 cuando una función de compilación nativa consulte una tabla optimizada para memoria. |
cached_time | datetime | Momento en que la función se agregó a la caché. |
last_execution_time | datetime | Última vez que se ejecutó la función. |
execution_count | bigint | Número de veces que se ha ejecutado la función desde que se compiló por última vez. |
total_worker_time | bigint | Tiempo total de CPU, en microsegundos, consumido por las ejecuciones de esta función desde su compilación. Para las funciones de compilación nativa, total_worker_time puede no ser exacto si varias ejecuciones tardan menos de 1 milisegundo. |
last_worker_time | bigint | Tiempo de CPU, en microsegundos, consumido la última vez que se ejecutó la función. 1 |
min_worker_time | bigint | Tiempo mínimo de CPU, en microsegundos, que esta función haya consumido durante una sola ejecución. 1 |
max_worker_time | bigint | Tiempo máximo de CPU, en microsegundos, que esta función haya consumido durante una sola ejecución. 1 |
total_physical_reads | bigint | Número total de lecturas físicas realizadas por las ejecuciones de esta función desde su compilación. Será siempre 0 al consultar una tabla optimizada para memoria. |
last_physical_reads | bigint | Número de lecturas físicas realizadas la última vez que se ejecutó la función. Será siempre 0 al consultar una tabla optimizada para memoria. |
min_physical_reads | bigint | Número mínimo de lecturas físicas que ha realizado esta función durante una ejecución. Será siempre 0 al consultar una tabla optimizada para memoria. |
max_physical_reads | bigint | Número máximo de lecturas físicas que ha realizado este plan durante una ejecución. Será siempre 0 al consultar una tabla optimizada para memoria. |
total_logical_writes | bigint | Número total de escrituras lógicas realizadas por las ejecuciones de esta función desde su compilación. Será siempre 0 al consultar una tabla optimizada para memoria. |
last_logical_writes | bigint | Número de páginas del grupo de búferes desfasadas la última vez que se ejecutó el plan. Si una página ya está desfasada (modificada) no se cuenta ninguna escritura. Será siempre 0 al consultar una tabla optimizada para memoria. |
min_logical_writes | bigint | Número mínimo de escrituras lógicas que ha realizado esta función durante una ejecución. Será siempre 0 al consultar una tabla optimizada para memoria. |
max_logical_writes | bigint | Número máximo de escrituras lógicas que ha realizado esta función durante una ejecución. Será siempre 0 al consultar una tabla optimizada para memoria. |
total_logical_reads | bigint | Número total de lecturas lógicas realizadas por las ejecuciones de esta función desde su compilación. Será siempre 0 al consultar una tabla optimizada para memoria. |
last_logical_reads | bigint | Número de lecturas lógicas realizadas la última vez que se ejecutó la función. Será siempre 0 al consultar una tabla optimizada para memoria. |
min_logical_reads | bigint | Número mínimo de lecturas lógicas que ha realizado esta función durante una ejecución. Será siempre 0 al consultar una tabla optimizada para memoria. |
max_logical_reads | bigint | Número máximo de lecturas lógicas que ha realizado esta función durante una ejecución. Será siempre 0 al consultar una tabla optimizada para memoria. |
total_elapsed_time | bigint | Tiempo total transcurrido, en microsegundos, para ejecuciones completadas de esta función. |
last_elapsed_time | bigint | Tiempo transcurrido, en microsegundos, hasta la finalización de la ejecución más reciente de esta función. |
min_elapsed_time | bigint | Tiempo mínimo transcurrido, en microsegundos, para cualquier ejecución completada de esta función. |
max_elapsed_time | bigint | Tiempo máximo transcurrido, en microsegundos, para cualquier ejecución completada de esta función. |
total_page_server_reads | bigint | Número total de lecturas del servidor de páginas realizadas por las ejecuciones de esta función desde su compilación. Se aplica a: Hiperescala de Azure SQL Database. |
last_page_server_reads | bigint | Número de lecturas del servidor de páginas realizadas la última vez que se ejecutó la función. Se aplica a: Hiperescala de Azure SQL Database. |
min_page_server_reads | bigint | Número mínimo de lecturas del servidor de páginas que ha realizado esta función durante una ejecución. Se aplica a: Hiperescala de Azure SQL Database. |
max_page_server_reads | bigint | Número máximo de lecturas del servidor de páginas que ha realizado esta función durante una ejecución. Se aplica a: Hiperescala de Azure SQL Database. |
Permisos
En SQL Server y SQL Managed Instance, requiere el permiso VIEW SERVER STATE
.
En los objetivos de servicio Básico, S0 y S1 de SQL Database y para bases de datos en grupos elásticos, se requiere la cuenta de administrador del servidor, la cuenta de administrador Microsoft Entra o la pertenencia al ##MS_ServerStateReader##
rol del servidor. En el resto de objetivos del servicio de SQL Database, se requiere el permiso VIEW DATABASE STATE
en la base de datos o la pertenencia en el rol del servidor ##MS_ServerStateReader##
.
Permisos para SQL Server 2022 y versiones posteriores
Requiere el permiso VER ESTADO DE RENDIMIENTO DEL SERVIDOR en el servidor.
Ejemplos
En el ejemplo siguiente se devuelve información acerca de las diez principales funciones identificadas por el promedio de tiempo transcurrido.
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;
Consulte también
Funciones y vistas de administración dinámica relacionadas con ejecuciones (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)