powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Хочу замерять время выполнения хранимых процедур?
25 сообщений из 25, страница 1 из 1
Хочу замерять время выполнения хранимых процедур?
    #40052163
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет, разработчики хотят статистику по работе хранимых процедур, скорее всего всех, посоветуйте, как это лучше организовать.

1. То что приходит в голову, это завести табличку с 3 полями datetime, proc_name, duration

Далее, как то автоматически добавить в начало и конец каждой хранимки @start @end insert into table () select GETDATE(),@ptoc_name,@end-@start

Но может есть другие, более простые способы реализовать эту задачу?
...
Рейтинг: 0 / 0
Хочу замерять время выполнения хранимых процедур?
    #40052171
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sys.dm_exec_procedure_stats
...
Рейтинг: 0 / 0
Хочу замерять время выполнения хранимых процедур?
    #40052201
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invm
sys.dm_exec_procedure_stats


То что нужно! Спасибо большое.
...
Рейтинг: 0 / 0
Хочу замерять время выполнения хранимых процедур?
    #40052208
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invm
sys.dm_exec_procedure_stats


А имя хранимки из данного представления получать через функцию OBJECT_NAME?
Код: sql
1.
select OBJECT_NAME(object_id) from sys.dm_exec_procedure_stats



В данном запросе вижу множество NULL
...
Рейтинг: 0 / 0
Хочу замерять время выполнения хранимых процедур?
    #40052221
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCa,

OBJECT_NAME ( object_id [, database_id ] )
...
Рейтинг: 0 / 0
Хочу замерять время выполнения хранимых процедур?
    #40052222
архивариус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
-- Top Cached SPs By Total Worker time. Worker time relates to CPU cost  (Query 57) (SP Worker Time)
SELECT TOP(25) p.name AS [SP Name], qs.total_worker_time AS [TotalWorkerTime], 
qs.total_worker_time/qs.execution_count AS [AvgWorkerTime], qs.execution_count, 
ISNULL(qs.execution_count/DATEDIFF(Minute, qs.cached_time, GETDATE()), 0) AS [Calls/Minute],
qs.total_elapsed_time, qs.total_elapsed_time/qs.execution_count 
AS [avg_elapsed_time], qs.cached_time
FROM sys.procedures AS p WITH (NOLOCK)
INNER JOIN sys.dm_exec_procedure_stats AS qs WITH (NOLOCK)
ON p.[object_id] = qs.[object_id]
WHERE qs.database_id = DB_ID()
AND DATEDIFF(Minute, qs.cached_time, GETDATE()) > 0
ORDER BY qs.total_worker_time DESC OPTION (RECOMPILE);

teCa,
...
Рейтинг: 0 / 0
Хочу замерять время выполнения хранимых процедур?
    #40052229
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо большой,разобрался со всем.
...
Рейтинг: 0 / 0
Хочу замерять время выполнения хранимых процедур?
    #40054185
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, по каким причинам хранимка может не попадать в это представление?
...
Рейтинг: 0 / 0
Хочу замерять время выполнения хранимых процедур?
    #40054189
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCa
Подскажите, по каким причинам хранимка может не попадать в это представление?


ей просто надоела вся эта фигня
...
Рейтинг: 0 / 0
Хочу замерять время выполнения хранимых процедур?
    #40054205
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

Немного уточню, есть джоб, в котором одним из шагов запускается выполнения хранимой процедуры:

Код: sql
1.
exec procZakaz_SuperMainFull_V3_vol2



данная процедура выполняется 1 раз в сутки, но:

Код: sql
1.
select * from sys.dm_exec_procedure_stats where OBJECT_NAME(object_id)='procZakaz_SuperMainFull_V3_vol2'



возвращает:
автор(затронуто строк: 0)

Время выполнения: 2021-03-16T17:27:43.0146785+03:00
...
Рейтинг: 0 / 0
Хочу замерять время выполнения хранимых процедур?
    #40054212
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCa
Подскажите, по каким причинам хранимка может не попадать в это представление?

это документировано

дока The view returns one row for each cached stored procedure plan, and the lifetime of the row is as long as the stored procedure remains cached.
When a stored procedure is removed from the cache, the corresponding row is eliminated from this view.

выбросило процу из кэша -> нет инфы в dmv
...
Рейтинг: 0 / 0
Хочу замерять время выполнения хранимых процедур?
    #40054216
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
use MyDB;
select * from sys.dm_exec_procedure_stats where database_id = db_id() and OBJECT_NAME(object_id)='procZakaz_SuperMainFull_V3_vol2'
...
Рейтинг: 0 / 0
Хочу замерять время выполнения хранимых процедур?
    #40054221
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad,

Дело в том, что я каждые 5 минут логирую это представление, хранимка выполняется порядка 10 часов и внутри содержит большое количество запросов. В мой лог эта процедура не попала, мог ли сервер не поместить в кэш "большой", по его мнению, план?
...
Рейтинг: 0 / 0
Хочу замерять время выполнения хранимых процедур?
    #40054222
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invm
Код: sql
1.
2.
use MyDB;
select * from sys.dm_exec_procedure_stats where database_id = db_id() and OBJECT_NAME(object_id)='procZakaz_SuperMainFull_V3_vol2'



Тоже пустой результат
...
Рейтинг: 0 / 0
Хочу замерять время выполнения хранимых процедур?
    #40054234
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Хочу замерять время выполнения хранимых процедур?
    #40054237
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCa,

а проца случаем не c with recompile?
...
Рейтинг: 0 / 0
Хочу замерять время выполнения хранимых процедур?
    #40054420
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad
teCa,

а проца случаем не c with recompile?


Без.
...
Рейтинг: 0 / 0
Хочу замерять время выполнения хранимых процедур?
    #40054422
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов


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

Получается, что в кэше этой процедуры не появляется или в кэше этот план храниться всего несколько минут.
...
Рейтинг: 0 / 0
Хочу замерять время выполнения хранимых процедур?
    #40054466
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCa


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

либо его вытесняет из сразу после исполнения

наблюдал такой случай, когда план большой процы выносил весь процедурный кэш при своей работе, а по окончании его самого выбрасывало из кэша другими (новыми) планами
...
Рейтинг: 0 / 0
Хочу замерять время выполнения хранимых процедур?
    #40054485
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad
ибо его вытесняет из сразу после исполнения


В том то и дело, что хранимка работает несколько часов, и в момент её работы плана в кэше уже нет.
...
Рейтинг: 0 / 0
Хочу замерять время выполнения хранимых процедур?
    #40054529
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCa,

не уже нет, а ещё нет, см. ссылку выше.
измерить время выполнения можно трассировкой (расширенными событиями) или внедрением кода в процедуру.
Есть еще вариант - добавить процедуру в джоб и он будет фиксировать продолжительность выполнения шага с своём журнале. Можно регистрировать на вызывающей стороне, вариантов достаточно.
...
Рейтинг: 0 / 0
Хочу замерять время выполнения хранимых процедур?
    #40054534
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Без анализа входных параметров ХП, логгирование времени выполнения бессмысленно.
...
Рейтинг: 0 / 0
Хочу замерять время выполнения хранимых процедур?
    #40054541
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argo,

ну почему, можно вычислить медианное значение или среднее и давать прогноз. Зависит от постановки задачи.
...
Рейтинг: 0 / 0
Хочу замерять время выполнения хранимых процедур?
    #40054571
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хранимка без параметров, время её выполнения я знаю, план хотелось увидеть для этой процедуры.
...
Рейтинг: 0 / 0
Хочу замерять время выполнения хранимых процедур?
    #40054573
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCa
план хотелось увидеть для этой процедуры.
Оценочный
Код: sql
1.
2.
3.
4.
5.
6.
set showplan_xml on;
go
exec Процедура;
go
set showplan_xml off;
go


Актуальный - https://techcommunity.microsoft.com/t5/sql-server/using-xevents-to-capture-an-actual-execution-plan/ba-p/392136
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Хочу замерять время выполнения хранимых процедур?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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