Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / длительность работы процедуры / 7 сообщений из 7, страница 1 из 1
20.01.2021, 09:26
    #40037335
Qiwi1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
длительность работы процедуры
Подскажите, пожалуйста, что делаю не так:
Хочу в хранимую процедуру вставить кусок, который бы в таблицу во время работы процедуры вставлял пользователя, который запустил процедуру, дату запуска, длительность работы и ошибку, если процедура выполнилась с ошибкой и имя процедуры.
Данные о работе других процедур в эту же таблицу хочу записывать.

пользователя, время, ошибку, имя процедуры:

insert into [dbo].[audit] ([date] ,[name_p],[error] ,[name_proc] )
select getdate(),SUSER_NAME(), @@ERROR,object_name(@@PROCID);

Как вытащить длительность работы? Была идея так:

SELECT d.cached_time,d.last_execution_time,d.execution_count,d.last_worker_time,d.object_id,
OBJECT_NAME(object_id, database_id) 'proc name'
FROM sys.dm_exec_procedure_stats AS d
where OBJECT_NAME(object_id, database_id) like 'моя процедура';

Но во время самого выполнения процедуры выдаются либо пустая строка, либо данные о предыдущем запуске процедуры
...
Рейтинг: 0 / 0
20.01.2021, 10:09
    #40037354
Megabyte
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
длительность работы процедуры
Qiwi1

Как вытащить длительность работы?

Апдейтить в конце процедуры: датавремя конца - датавремя начала выполнения процы.
...
Рейтинг: 0 / 0
20.01.2021, 10:54
    #40037366
Qiwi1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
длительность работы процедуры
Megabyte, спасибо, а можно подробнее с небольшим примером
...
Рейтинг: 0 / 0
20.01.2021, 12:48
    #40037408
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
длительность работы процедуры
Qiwi1
Megabyte, спасибо, а можно подробнее с небольшим примером


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
create procedure MyProc
as
declare @start datetime = getdate();

....


select Duration = datediff( ms, @start, getdate());
...
Рейтинг: 0 / 0
20.01.2021, 13:07
    #40037421
Qiwi1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
длительность работы процедуры
aleks222,
а в чем измеряется длительность? получилось значение 8523. По моим часам 8 сек отрабатывала процедура. В каких-то более понятных значениях ее можно отображать? в сек?
...
Рейтинг: 0 / 0
20.01.2021, 13:17
    #40037428
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
длительность работы процедуры
Qiwi1,

документация в публичном доступе

https://docs.microsoft.com/en-us/sql/t-sql/functions/datediff-transact-sql
...
Рейтинг: 0 / 0
20.01.2021, 14:16
    #40037473
Qiwi1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
длительность работы процедуры
komrad,
конечно, спасибо!!изучу
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / длительность работы процедуры / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]