Поделиться через


sys.dm_exec_procedure_stats (Transact-SQL)

Возвращает суммарную статистику производительности для закэшированных хранимых процедур. Это представление содержит по одной строке для каждого закэшированного плана выполнения хранимой процедуры. Время существования строки равно времени пребывания хранимой процедуры в кэше. Когда хранимая процедура удаляется из кэша, соответствующая строка исключается из представления. В этот момент возникает событие SQL-трассировки статистики производительности аналогично sys.dm_exec_query_stats.

ПримечаниеПримечание

Начальный запрос представления sys.dm_exec_procedure_stats может выдавать неточные результаты, если на сервере существует рабочая нагрузка. Более точные результаты могут быть получены при повторном выполнении запроса.

Имя столбца

Тип данных

Описание

database_id

int

Идентификатор базы данных, в которой находится хранимая процедура.

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.

cached_time

datetime

Время добавления хранимой процедуры в кэш.

cached_time

datetime

Время добавления хранимой процедуры в кэш.

last_execution_time

datetime

Время последнего выполнения хранимой процедуры.

execution_count

bigint

Количество выполнений хранимой процедуры с момента последней компиляции.

total_worker_time

bigint

Общее время ЦП, затраченное на выполнение хранимой процедуры с момента компиляции, в микросекундах.

last_worker_time

bigint

Время ЦП, затраченное на последнее выполнение хранимой процедуры, в микросекундах.

min_worker_time

bigint

Максимальное время ЦП (в микросекундах), которое эта хранимая процедура когда-либо затрачивала на одно выполнение.

max_worker_time

bigint

Максимальное время ЦП (в микросекундах), которое эта хранимая процедура когда-либо затрачивала на одно выполнение.

total_physical_reads

bigint

Общее количество операций физического считывания при выполнении хранимой процедуры с момента ее компиляции.

last_physical_reads

bigint

Количество операций физического считывания за время последнего выполнения хранимой процедуры.

min_physical_reads

bigint

Минимальное количество операций физического считывания за одно выполнение хранимой процедуры.

max_physical_reads

bigint

Максимальное количество операций физического считывания за одно выполнение хранимой процедуры.

total_logical_writes

bigint

Общее количество операций логической записи при выполнении хранимой процедуры с момента ее компиляции.

last_logical_writes

bigint

Количество операций логической записи за время последнего выполнения хранимой процедуры.

min_logical_writes

bigint

Минимальное количество операций логической записи за одно выполнение хранимой процедуры.

max_logical_writes

bigint

Максимальное количество операций логической записи за одно выполнение хранимой процедуры.

total_logical_reads

bigint

Общее количество операций логического чтения при выполнении хранимой процедуры с момента ее компиляции.

last_logical_reads

bigint

Количество операций логического чтения за время последнего выполнения хранимой процедуры.

min_logical_reads

bigint

Минимальное количество операций логического чтения за одно выполнение хранимой процедуры.

max_logical_reads

bigint

Максимальное количество операций логического чтения за одно выполнение хранимой процедуры.

total_elapsed_time

bigint

Общее время, затраченное на выполнение хранимой процедуры, в микросекундах.

last_elapsed_time

bigint

Время, затраченное на последнее выполнение хранимой процедуры, в микросекундах.

min_elapsed_time

bigint

Минимальное время, затраченное на одно выполнение хранимой процедуры, в микросекундах.

max_elapsed_time

bigint

Максимальное время, затраченное на одно выполнение хранимой процедуры, в микросекундах.

Разрешения

Требует разрешений VIEW SERVER STATE на сервере.

Замечания

Статистика в представлении обновляется после завершения выполнения хранимой процедуры.

Примеры

В следующем примере возвращаются сведения о первых десяти хранимых процедурах, идентифицируемых по среднему затраченному времени.

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;