Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Относится к:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Система аналитической платформы (PDW)
SQL база данных в Microsoft Fabric
Возвращает суммарную статистику производительности для кэшированных хранимых процедур. Это представление содержит по одной строке для каждого кэшированного плана хранимой процедуры. Время существования строки равно времени пребывания хранимой процедуры в кэше. Когда хранимая процедура удаляется из кэша, соответствующая строка исключается из представления. В то время query_cache_removal_statistics событие вызывается аналогично sys.dm_exec_query_stats для SQL Server и Управляемый экземпляр SQL Azure.
В База данных SQL Azure динамические административные представления не могут предоставлять сведения, влияющие на доступность базы данных или предоставление сведений о других базах данных, к которым пользователь имеет доступ. Чтобы избежать предоставления этой информации, отфильтровывается каждая строка, содержащая данные, которые не принадлежат подключену клиенту.
Примечание.
Результаты sys.dm_exec_procedure_stats могут отличаться в зависимости от каждого выполнения, так как данные отражают только завершенные запросы, а не те, которые еще не выполнялись.
Чтобы вызвать это из Azure Synapse Analytics или Analytics Platform System (PDW), используйте имя sys.dm_pdw_nodes_exec_procedure_stats. Этот синтаксис не поддерживается бессерверным пулом SQL в Azure Synapse Analytics.
| Имя столбца | Тип данных | Description |
|---|---|---|
| database_id | int | Идентификатор базы данных, в которой находится хранимая процедура. В База данных SQL Azure значения уникальны в одной базе данных или эластичном пуле, но не в логическом сервере. |
| object_id | int | Идентификатор объекта хранимой процедуры. |
| type | char(2) | Тип объекта: P = хранимая процедура SQL PC = хранимая процедура сборки (среда CLR) X = расширенная хранимая процедура |
| type_desc | nvarchar(60) | Описание типа объекта: SQL_STORED_PROCEDURE CLR_STORED_PROCEDURE EXTENDED_STORED_PROCEDURE |
| 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 может быть неточной, если за время меньше миллисекунды выполняется большое количество хранимых процедур. |
| 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_spills | bigint | Общее количество страниц, разливаемых выполнением этой хранимой процедуры, так как она была скомпилирована. Область применения: начиная с SQL Server 2017 (14.x) CU3 |
| last_spills | bigint | Количество страниц, разливаемых при последнем выполнении хранимой процедуры. Область применения: начиная с SQL Server 2017 (14.x) CU3 |
| min_spills | bigint | Минимальное количество страниц, которые эта хранимая процедура когда-либо разлилась во время одного выполнения. Область применения: начиная с SQL Server 2017 (14.x) CU3 |
| max_spills | bigint | Максимальное количество страниц, которые эта хранимая процедура когда-либо разлилась во время одного выполнения. Область применения: начиная с SQL Server 2017 (14.x) CU3 |
| pdw_node_id | int | Идентификатор узла, на который находится данное распределение. Область применения: Azure Synapse Analytics, Analytics Platform System (PDW) |
| 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 |
1 Для скомпилированных в собственном коде хранимых процедур при включении сбора статистики рабочий период собирается в миллисекундах. Если запрос выполняется за время меньше миллисекунды, это значение будет равно 0.
Разрешения
На 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 на сервере.
Замечания
Статистика в представлении обновляется после завершения выполнения хранимой процедуры.
Примеры
В следующем примере возвращаются сведения о 10 первых хранимых процедурах, идентифицируемых по среднему затраченному времени.
SELECT TOP 10 d.object_id, d.database_id, OBJECT_NAME(object_id, database_id) 'proc 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_procedure_stats AS d
ORDER BY [total_worker_time] DESC;
См. также
Связанные с выполнением динамические административные представления и функции (Transact-SQL)
sys.dm_exec_sql_text (Transact-SQL)
sys.dm_exec_query_plan (Transact-SQL)
sys.dm_exec_query_stats (Transact-SQL)
sys.dm_exec_trigger_stats (Transact-SQL)
sys.dm_exec_cached_plans (Transact-SQL)