Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к:SQL Server
База данных SQL Azure
Управляемый экземпляр SQL Azure
Azure Synapse Analytics
Analytics Platform System (PDW)
База данных SQL в Microsoft Fabric
Возвращает суммарную статистику производительности для кэшированных хранимых процедур. Это представление содержит по одной строке для каждого кэшированного плана хранимой процедуры. Время существования строки равно времени пребывания хранимой процедуры в кэше. Когда хранимая процедура удаляется из кэша, соответствующая строка исключается из представления. В то время query_cache_removal_statistics событие вызывается аналогично sys.dm_exec_query_stats для SQL Server и Управляемый экземпляр SQL Azure.
В База данных SQL Azure динамические управленческие представления не могут раскрывать информацию, которая может повлиять на содержание базы данных, или о других базах данных, к которым пользователь имеет доступ. Чтобы избежать предоставления этой информации, отфильтровывается каждая строка, содержащая данные, которые не принадлежат подключену клиенту.
Note
Результаты sys.dm_exec_procedure_stats могут отличаться в зависимости от каждого выполнения, так как данные отражают только завершенные запросы, а не те, которые еще не выполнялись.
Чтобы вызвать это из Azure Synapse Analytics или Analytics Platform System (PDW), используйте имя sys.dm_pdw_nodes_exec_procedure_stats. Этот синтаксис не поддерживается бессерверным пулом SQL в Azure Synapse Analytics.
| Название столбца | Тип данных | Описание |
|---|---|---|
| database_id | int | Идентификатор базы данных, в которой находится хранимая процедура. В База данных SQL Azure значения уникальны в одной базе данных или эластичном пуле, но не в логическом сервере. |
| object_id | int | Идентификатор объекта хранимой процедуры. |
| тип | 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, система платформы аналитики (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.
Permissions
Для SQL Server и Управляемого экземпляра SQL требуется разрешение VIEW SERVER STATE.
В базе данных SQL базовые, S0и S1 целей службы, а также для баз данных в эластичных пулах, требуется учетная запись администратора сервера сервера, учетная запись администратора Microsoft Entra или членство в роли сервера ##MS_ServerStateReader##. Для всех остальных целей службы базы данных SQL требуется разрешение VIEW DATABASE STATE на базу данных или членство в роли сервера ##MS_ServerStateReader##.
Разрешения для SQL Server 2022 и более поздних версий
Требуется VIEW разрешение на состояние производительности сервера на сервере.
Замечания
Статистика в представлении обновляется после завершения выполнения хранимой процедуры.
Examples
В следующем примере возвращаются сведения о 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;