Хранимая процедура SQL Server самопрофилируется на время выполнения?
Мне нужно найти и сохранить в таблице время выполнения процедуры каждый раз, когда она выполняется.
Есть ли способ, которым я могу сделать это в рамках процедуры? Допустим, использовать запрос, чтобы найти время его выполнения и записать его в таблицу?
Любые другие лучшие методы для записи времени выполнения процедуры, кроме использования Profiler и фильтрации тысяч тысяч записей?
Спасибо
1 ответ
Вы можете просто использовать два параметра и инициализировать один в начале процедуры, а другой - в конце процедуры.
create procedure myproc as
begin
declare @start_time datetime = getdate()
(rest of procedure code)
declare @end_time datetime = getdate()
end
Прямо перед выходом из процедуры вы можете вставить эти значения в таблицу регистрации.
INSERT INTO Proc_Exec_Log (procedure_name, start_time, end_time)
VALUES ('myproc', @start_time, @end_time);