sys.dm_exec_procedure_stats (Transact-SQL)
Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)
Возвращает суммарную статистику производительности для кэшированных хранимых процедур. Это представление содержит по одной строке для каждого кэшированного плана хранимой процедуры. Время существования строки равно времени пребывания хранимой процедуры в кэше. Когда хранимая процедура удаляется из кэша, соответствующая строка исключается из представления. В то время 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)