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

Откуда: Екатеринбург-Москва
Сообщений: 876
Как получить план запроса, который выполняется в данный момент?

казалось бы что: sys.dm_exec_query_plan

"Возвращает события инструкции Showplan в XML-формате для пакета, указанного в дескрипторе плана. План, указанный в дескрипторе плана может быть кэширован или выполняться в данный момент. "

но при этом такой запрос возвращает только 8 строк
select *
 from sys.dm_exec_requests cp
 cross apply  sys.dm_exec_sql_text( sql_handle)
 cross apply sys.dm_exec_query_plan ( plan_handle )

а такой запрос - 11 строк
select *
 from sys.dm_exec_requests cp
 cross apply  sys.dm_exec_sql_text( sql_handle)
-- cross apply sys.dm_exec_query_plan ( plan_handle )

запрос, план которго мне интересен, в первую выборку не попадает.

План точно не из кеша, в такой выборке его тоже нет
select * from
 sys.dm_exec_requests r
 join
 sys.dm_exec_cached_plans p
 on r.plan_handle = p.plan_handle
28 ноя 12, 09:17    [13540364]     Ответить | Цитировать Сообщить модератору
 Re: Как получить план запроса, который выполняется в данный момент?  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
Profiler
28 ноя 12, 10:16    [13540698]     Ответить | Цитировать Сообщить модератору
 Re: Как получить план запроса, который выполняется в данный момент?  [new]
Katy
Member

Откуда: Екатеринбург-Москва
Сообщений: 876
Knyazev Alexey, да, но запрос уже идет. Его же не будет в профайлере
28 ноя 12, 10:18    [13540715]     Ответить | Цитировать Сообщить модератору
 Re: Как получить план запроса, который выполняется в данный момент?  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
Katy
Knyazev Alexey, да, но запрос уже идет. Его же не будет в профайлере


а в текстовом формате план запроса возвращает?
sys.dm_exec_text_query_plan
28 ноя 12, 10:20    [13540734]     Ответить | Цитировать Сообщить модератору
 Re: Как получить план запроса, который выполняется в данный момент?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Katy
запрос, план которго мне интересен, в первую выборку не попадает.

Может у вас
Under the following conditions, no Showplan output is returned in the query_plan column of the returned table for sys.dm_exec_query_plan:...
28 ноя 12, 10:23    [13540751]     Ответить | Цитировать Сообщить модератору
 Re: Как получить план запроса, который выполняется в данный момент?  [new]
Katy
Member

Откуда: Екатеринбург-Москва
Сообщений: 876
Knyazev Alexey
Katy
Knyazev Alexey, да, но запрос уже идет. Его же не будет в профайлере


а в текстовом формате план запроса возвращает?
sys.dm_exec_text_query_plan
нет. запрос использую такой
select * from sys.dm_exec_requests cp
 cross apply  sys.dm_exec_sql_text( sql_handle)
 --cross apply sys.dm_exec_query_plan ( plan_handle )
 cross apply sys.dm_exec_text_query_plan( plan_handle,0,-1);
28 ноя 12, 10:24    [13540759]     Ответить | Цитировать Сообщить модератору
 Re: Как получить план запроса, который выполняется в данный момент?  [new]
Katy
Member

Откуда: Екатеринбург-Москва
Сообщений: 876
Glory
Katy
запрос, план которго мне интересен, в первую выборку не попадает.

Может у вас
Under the following conditions, no Showplan output is returned in the query_plan column of the returned table for sys.dm_exec_query_plan:...
Да, действительно. Запрос из 1С обёрнут в exec sp_executesql. Спасибо.
28 ноя 12, 12:42    [13541912]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить