Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Extended Events вешает сервер наглухо и сразу  [new]
Shurgenz
Member

Откуда: Питер
Сообщений: 1938
IF EXISTS(SELECT * FROM sys.server_event_sessions WHERE name='EXEC_SP')
    DROP EVENT SESSION EXEC_SP ON SERVER;
CREATE EVENT SESSION [EXEC_SP] ON SERVER 
ADD EVENT sqlserver.module_end(
    ACTION(sqlserver.client_app_name, 
     sqlserver.client_hostname,
     sqlserver.database_id,
     sqlserver.username)
    WHERE ([sqlserver].[equal_i_sql_ansi_string]([object_type],'P') --SPS
     AND 
	 source_database_id=24)
	 AND
	 ([package0].[greater_than_equal_ansi_string]([object_name],'p')
		OR	[package0].[greater_than_equal_ansi_string]([object_name],'atisp'))) 
ADD TARGET package0.synchronous_event_counter
go
ALTER EVENT SESSION EXEC_SP
ON SERVER
STATE=start
GO


Что тут поменять? а то беда... хочу мониторить количество выполнений процедур
19 май 16, 13:54    [19193602]     Ответить | Цитировать Сообщить модератору
 Re: Extended Events вешает сервер наглухо и сразу  [new]
komrad
Member

Откуда:
Сообщений: 5760
Shurgenz,
а sys.dm_exec_procedure_stats для этого не подходит?
19 май 16, 15:31    [19194191]     Ответить | Цитировать Сообщить модератору
 Re: Extended Events вешает сервер наглухо и сразу  [new]
Shurgenz
Member

Откуда: Питер
Сообщений: 1938
komrad,

нет, поскольку dm_exec_procedure_stats сбрасывает свои показания время от времени, при перекомпиляции, или при рестарте сервера. В общем ненадёжная штуку
19 май 16, 17:04    [19194899]     Ответить | Цитировать Сообщить модератору
 Re: Extended Events вешает сервер наглухо и сразу  [new]
Shurgenz
Member

Откуда: Питер
Сообщений: 1938
Точнее, не сбрасывает, а обновляет cached_time в случае, если процедура вытесняется из процедурного кэша, а потом снова туда попадает. или находясь уже там, помещается в процедурный кэш. Другими словами, execution_count растёт, а cached_time, на значение которого можно было бы уповать, обновляется. И получается, что qs.execution_count / DATEDIFF(Second, qs.cached_time, GETDATE() -- количество выполнений процедуры за секунду возвращает хрень
24 май 16, 17:02    [19213735]     Ответить | Цитировать Сообщить модератору
 Re: Extended Events вешает сервер наглухо и сразу  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8828
Shurgenz,

КО говорит, что можно сделать два снимка и рассчитать среднее время за сутки.
24 май 16, 18:21    [19214119]     Ответить | Цитировать Сообщить модератору
 Re: Extended Events вешает сервер наглухо и сразу  [new]
Shurgenz
Member

Откуда: Питер
Сообщений: 1938
Владислав Колосов,

Странно для меня следующее

сделал снимок из dm_exec_procedure_stat, в это время работал трэйс, ловил все запуски процедур
через минут 20 сделал ещё снимок

так вот, одна из процедур судя по второму снимку, за эти 20 минут выполнилась 2431 раза, хотя трэйс отловил всего 1 запуск.

Вопрос: где сервер хранит информацию о выполнениях процедур, тогда, когда они вытесняются из dm_exec_procedure_stat?

пробовал смотреть ещё в sys.[dm_exec_cached_plans], но там для плана этой процедуры никаких говорящих цифр... refcount=3, usecount=1

куда ещё поглядеть, чтобы узнать, сколько процедура выполнялась?
26 май 16, 14:19    [19223285]     Ответить | Цитировать Сообщить модератору
 Re: Extended Events вешает сервер наглухо и сразу  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8828
Shurgenz,

одна процедура может кэшироваться с разными планами, надо это иметь в виду. Если у Вас большой процент вытеснения из процедурного кэша, значит может иметь место недостаток оперативной памяти. У меня со вчера ходовые процедуры все еще в кэше, специально проверил.
27 май 16, 10:49    [19226901]     Ответить | Цитировать Сообщить модератору
 Re: Extended Events вешает сервер наглухо и сразу  [new]
Shurgenz
Member

Откуда: Питер
Сообщений: 1938
Владислав Колосов,

У меня есть ночные джобы, они и вытесняют... ну ещё очень редко выполняемые квери... они вытесняют, потом их ходовые вытесняют под нагрузкой.

да даже не в этом проблема, это нормальная работа... вот только когда проблема возникает, в последнее время, по крайней мере, это связано с тем, что некая процедурка стала работать ненормально часто, так сказать, кошмарить сервер. Что может быть связано с кривыми разработческими руками, либо ДОС атакой. В этом случае, особенно, если эта процедура никого не блокирует, и выполняется быстро (в пределах 200-300 миллисекунд), достаточно сложно бывает понять, почему всё начинает тормозить

я пообщался с MS, они говорят, что то, что процедура удаляется из процедурного кэша, а потом при повторном запуске снова туда попадает, но с ненулевым execution_count, но даже не это самое противное, а с ДРУГИМ plan_handle, БАГ, так быть не должно.

вот здесь я написал про прблему
27 май 16, 15:50    [19228742]     Ответить | Цитировать Сообщить модератору
 Re: Extended Events вешает сервер наглухо и сразу  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 901
komrad
Shurgenz,
а sys.dm_exec_procedure_stats для этого не подходит?

это да, там данные могут быть очень не точные, сам так же поподался вместе с сотрудниками ms.

в итоге мы делали через профайлер в фоновой трассе количество обращений к объекту в профайлере, примерную картину можно так получить., если нужно просто факт вызова.
либо sp:complete но на нагрузочной и она может повесить.
27 май 16, 16:01    [19228803]     Ответить | Цитировать Сообщить модератору
 Re: Extended Events вешает сервер наглухо и сразу  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8828
Чтобы трасса не вешала, пишите в таблицу или файл на другой сервер, это значительно снизит нагрузку. Хоть на свой персональный, даже это будет лучше, чем не тот же сервер.
27 май 16, 16:34    [19229033]     Ответить | Цитировать Сообщить модератору
 Re: Extended Events вешает сервер наглухо и сразу  [new]
Shurgenz
Member

Откуда: Питер
Сообщений: 1938
Владислав Колосов,

что касается трассы, то я так и делаю... не устраивает меня лишь то, что под нагрузкой, особенно, в ситуациях, что я написал, там будет слишком много записей, для того, чтобы быстро проанализировать и среагировать... вот почему DMV или EE
27 май 16, 16:47    [19229102]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить