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

Откуда:
Сообщений: 498
Доброго дня всем!

Подскажите, возможно ли запросом получить список выполняющихся ХП в некий момент времени (т.е., выполнение началось и еще не закончено)?
Спасибо.
27 мар 14, 16:39    [15796023]     Ответить | Цитировать Сообщить модератору
 Re: Список выполняющихся ХП  [new]
gang
Member

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

SQL Server в общем-то не оперирует понятием "процедура" в момент исполнения кода. Для него все, что исполняется скорее "запрос".
Активные запросы можно посмотреть в sys.dm_exec_requests. Если очень хочется только проц-ры, то можно попробовать придумать какой-то фильтр по тексту запроса полученному с использованием sys.dm_exec_sql_text. Для проц-р там с большой вероятностью будет подстрока create procedure.
27 мар 14, 17:17    [15796270]     Ответить | Цитировать Сообщить модератору
 Re: Список выполняющихся ХП  [new]
Just_Serg
Member

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

А профайлер наверное тоже откуда-то берет названия выполняемых ХП? Или он не из базы это дело берет?
27 мар 14, 17:21    [15796288]     Ответить | Цитировать Сообщить модератору
 Re: Список выполняющихся ХП  [new]
gang
Member

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

Профайлер это отдельная песня. Он ловит не текущие состояния а события. Что касается определения является ли выполняемый запрос частью проц-ры, то в том же sys.dm_exec_sql_text возвращается objectid. Можно по нему определить, что запрос относится к проц-ре, функции и т.п.
27 мар 14, 17:47    [15796475]     Ответить | Цитировать Сообщить модератору
 Re: Список выполняющихся ХП  [new]
invm
Member

Откуда: Москва
Сообщений: 9400
В качестве идеи:
select
 object_name(cast(pa1.value as int), cast(pa2.value as int))
from
 sys.dm_exec_requests r join
 sys.dm_exec_cached_plans p on p.plan_handle = r.plan_handle cross apply
 sys.dm_exec_plan_attributes(r.plan_handle) pa1 cross apply
 sys.dm_exec_plan_attributes(r.plan_handle) pa2
where
 p.objtype = 'proc' and pa1.attribute = N'objectid' and pa2.attribute = N'dbid';
27 мар 14, 18:09    [15796617]     Ответить | Цитировать Сообщить модератору
 Re: Список выполняющихся ХП  [new]
Just_Serg
Member

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

Спасибо большое!
28 мар 14, 10:35    [15799123]     Ответить | Цитировать Сообщить модератору
 Re: Список выполняющихся ХП  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Сомнительно, что в этом вообще есть необходимость.
28 мар 14, 10:35    [15799125]     Ответить | Цитировать Сообщить модератору
 Re: Список выполняющихся ХП  [new]
Just_Serg
Member

Откуда:
Сообщений: 498
Владислав Колосов
Сомнительно, что в этом вообще есть необходимость.


Не поверите - а все же есть.
28 мар 14, 11:06    [15799361]     Ответить | Цитировать Сообщить модератору
 Re: Список выполняющихся ХП  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2396
Just_Serg,

а запустить МониторАктивности, после которого Профайлером посмотерть запросы не судьба?

create table #tmp_sp_help_category
(category_id int null, category_type tinyint null, name nvarchar(128) null)
insert into #tmp_sp_help_category exec msdb.dbo.sp_help_category
		


SELECT
sv.name AS [Name],
CAST(sv.enabled AS bit) AS [IsEnabled],
tshc.name AS [Category],
sv.category_id AS [CategoryID],
tshc.category_type AS [CategoryType],
null AS [CurrentRunStatus],
null AS [CurrentRunStep],
null AS [HasSchedule],
null AS [HasStep],
null AS [HasServer],
null AS [LastRunDate],
null AS [NextRunDate],
null AS [LastRunOutcome],
CAST(sv.job_id AS nvarchar(100)) AS [job_id]
FROM
msdb.dbo.sysjobs_view AS sv
INNER JOIN #tmp_sp_help_category AS tshc ON sv.category_id = tshc.category_id


exec msdb.dbo.sp_help_job
28 мар 14, 11:46    [15799697]     Ответить | Цитировать Сообщить модератору
 Re: Список выполняющихся ХП  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2396
where current_execution_status = 1
28 мар 14, 11:47    [15799704]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить