Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Относится к: SQL Server 2016 (13.x) и более поздние версии
Azure SQL Database
Azure SQL Managed Instance
SQL Database в Microsoft Fabric
Возвращает статистическую статистику производительности для кэшированных функций. Представление возвращает по одной строке для каждого кэшированного плана функции, а время существования строки — до тех пор, пока функция остается кэшированной. При удалении функции из кэша соответствующая строка удаляется из этого представления. В то время событие трассировки sql статистики производительности вызывается аналогично sys.dm_exec_query_stats. Возвращает сведения о скалярных функциях, включая функции в памяти и скалярные функции CLR. Не возвращает сведения о табличных функциях и о скалярных функциях, которые встраиваются в скалярную структуру UDF.
В База данных SQL Azure динамические административные представления не могут предоставлять сведения, влияющие на доступность базы данных или предоставление сведений о других базах данных, к которым пользователь имеет доступ. Чтобы избежать предоставления этой информации, отфильтровывается каждая строка, содержащая данные, которые не принадлежат подключену клиенту.
Примечание.
Результаты sys.dm_exec_function_stats могут отличаться в зависимости от каждого выполнения, так как данные отражают только завершенные запросы, а не те, которые еще не выполнялись.
| Имя столбца | Тип данных | Description |
|---|---|---|
| database_id | int | Идентификатор базы данных, в которой находится функция. В База данных SQL Azure значения уникальны в одной базе данных или эластичном пуле, но не в логическом сервере. |
| object_id | int | Идентификационный номер объекта функции. |
| type | char(2) | Тип объекта: FN = Скалярные значения функций |
| type_desc | nvarchar(60) | Описание типа объекта: SQL_SCALAR_FUNCTION |
| sql_handle | varbinary(64) | Это можно использовать для корреляции с запросами в sys.dm_exec_query_stats , которые были выполнены из этой функции. |
| plan_handle | varbinary(64) | Идентификатор плана в оперативной памяти. Этот идентификатор является временным и константным, только пока план сохраняется в кэше. Это значение может использоваться с динамическим представлением управления sys.dm_exec_cached_plans . Всегда будет 0x000, когда скомпилированные в собственном коде функции запрашивают оптимизированную для памяти таблицу. |
| cached_time | datetime | Время добавления функции в кэш. |
| last_execution_time | datetime | Последнее время выполнения функции. |
| execution_count | bigint | Количество раз, когда функция была выполнена с момента последнего компиляции. |
| total_worker_time | bigint | Общий объем времени ЦП в микросекундах, который использовался выполнением этой функции, так как она была скомпилирована. Для скомпилированных в собственном коде функций total_worker_time может не быть точным, если многие выполнения занимают менее 1 миллисекунда. |
| last_worker_time | bigint | Время ЦП в микросекундах, которое использовалось при последнем выполнении функции. 1 |
| min_worker_time | bigint | Минимальное время ЦП в микросекундах, которое эта функция когда-либо использовала во время одного выполнения. 1 |
| max_worker_time | bigint | Максимальное время ЦП в микросекундах, которое эта функция когда-либо использовала во время одного выполнения. 1 |
| total_physical_reads | bigint | Общее количество физических операций чтения, выполняемых выполнением этой функции, так как оно было скомпилировано. Значение всегда равно 0 при запросе оптимизированной для памяти таблицы. |
| last_physical_reads | bigint | Количество физических операций чтения, выполненных при последнем выполнении функции. Значение всегда равно 0 при запросе оптимизированной для памяти таблицы. |
| min_physical_reads | bigint | Минимальное количество физических операций чтения, которое эта функция когда-либо выполняла во время одного выполнения. Значение всегда равно 0 при запросе оптимизированной для памяти таблицы. |
| max_physical_reads | bigint | Максимальное количество физических операций чтения, которое эта функция когда-либо выполняла во время одного выполнения. Значение всегда равно 0 при запросе оптимизированной для памяти таблицы. |
| total_logical_writes | bigint | Общее количество логических операций записи, выполняемых выполнением этой функции, так как она была скомпилирована. Значение всегда равно 0 при запросе оптимизированной для памяти таблицы. |
| last_logical_writes | bigint | Количество страниц в буферном пуле, загрязненных во время последнего выполнения плана. Если страница уже является «грязной» (т. е. измененной), операции записи не учитываются. Значение всегда равно 0 при запросе оптимизированной для памяти таблицы. |
| min_logical_writes | bigint | Минимальное количество логических записей, которые эта функция когда-либо выполняла во время одного выполнения. Значение всегда равно 0 при запросе оптимизированной для памяти таблицы. |
| max_logical_writes | bigint | Максимальное количество логических записей, которые эта функция когда-либо выполняла во время одного выполнения. Значение всегда равно 0 при запросе оптимизированной для памяти таблицы. |
| total_logical_reads | bigint | Общее количество логических операций чтения, выполняемых выполнением этой функции с момента компиляции. Значение всегда равно 0 при запросе оптимизированной для памяти таблицы. |
| last_logical_reads | bigint | Количество логических операций чтения, выполненных при последнем выполнении функции. Значение всегда равно 0 при запросе оптимизированной для памяти таблицы. |
| min_logical_reads | bigint | Минимальное количество логических считывает, что эта функция когда-либо выполнялась во время одного выполнения. Значение всегда равно 0 при запросе оптимизированной для памяти таблицы. |
| max_logical_reads | bigint | Максимальное количество логических считывает, что эта функция когда-либо выполнялась во время одного выполнения. Значение всегда равно 0 при запросе оптимизированной для памяти таблицы. |
| total_elapsed_time | bigint | Общее время, прошедшее в микросекундах, для завершения выполнения этой функции. |
| last_elapsed_time | bigint | Истеклое время в микросекундах для последней завершенной выполнения этой функции. |
| min_elapsed_time | bigint | Минимальное истекшее время в микросекундах для любого завершенного выполнения этой функции. |
| max_elapsed_time | bigint | Максимальное время, прошедшее в микросекундах, для любого завершенного выполнения этой функции. |
| total_page_server_reads | bigint | Общее количество операций чтения сервера страницы, выполняемого выполнением этой функции, так как она была скомпилирована. Область применения: База данных SQL Azure гипермасштабирование. |
| last_page_server_reads | bigint | Число операций чтения сервера страницы при последнем выполнении функции. Область применения: База данных SQL Azure гипермасштабирование. |
| min_page_server_reads | bigint | Минимальное количество серверов страниц считывает, что эта функция когда-либо выполнялась во время одного выполнения. Область применения: База данных SQL Azure гипермасштабирование. |
| max_page_server_reads | bigint | Максимальное количество серверов страницы считывает, что эта функция когда-либо выполнялась во время одного выполнения. Область применения: База данных SQL Azure гипермасштабирование. |
Разрешения
На SQL Server и управляемом экземпляре SQL необходимо разрешение VIEW SERVER STATE.
Для целей службы База данных SQL Basic, S0 и S1, а также для баз данных в эластичных пулах, учетной записи администратора сервера, учетной записи администратора Microsoft Entra или членства в ##MS_ServerStateReader##роли сервера требуется. Для всех остальных целей обслуживания базы данных SQL требуется разрешение VIEW DATABASE STATE в базе данных или членство в роли сервера ##MS_ServerStateReader##.
Разрешения для SQL Server 2022 и более поздних версий
Требуется разрешение VIEW SERVER PERFORMANCE STATE на сервере.
Примеры
В следующем примере возвращаются сведения о десяти функциях, определяемых средним временем.
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;
См. также
Связанные с выполнением динамические административные представления и функции (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)