Имя: Пароль:
1C
 
Определение запросов (у которых есть Lazy Spool)
,
0 Alex_MA
 
20.02.17
16:32
Здравствуйте!

Подскажите пожалуйста, есть ли возможность определить запросом в MS SQL Server 2008 R2 какие запросы выполняются с использованием плана запроса, в состав которого входит оператор Lazy Spool?

Спасибо.
1 shuhard
 
20.02.17
16:39
(0) профайлер ?
2 Alex_MA
 
20.02.17
16:41
(1)использую профайлер.
Вот думаю простым селектом из системных таблиц можно это выбрать с указанием на конкретный sql запрос?
3 Alex_MA
 
21.02.17
11:23
вот запрос который выводит эти данные - т.е. xmp план запроса.
SELECT * FROM sys.dm_exec_cached_plans cp CROSS APPLY sys.dm_exec_query_plan(cp.plan_handle);
Как из этих планов отобрать где есть table spool?
4 H A D G E H O G s
 
21.02.17
11:33
Первое, что пришло в голову

SELECT p.*
FROM
sys.dm_exec_cached_plans cp
CROSS apply sys.dm_exec_text_query_plan(cp.plan_handle,0,-1) p
CROSS apply sys.dm_exec_sql_text(cp.plan_handle) AS q
where p.query_plan like '%indexseek%'
5 H A D G E H O G s
 
21.02.17
11:35
как то так

SELECT p.query_plan,cp.plan_handle,q.text
FROM
sys.dm_exec_cached_plans cp
CROSS apply sys.dm_exec_text_query_plan(cp.plan_handle,0,-1) p
CROSS apply sys.dm_exec_sql_text(cp.plan_handle) AS q
where p.query_plan like '%indexseek%'

не знаю, как пишется lazyspool в тексте плана запроса, подберите сами
6 H A D G E H O G s
 
21.02.17
11:37
(0) "spool-ы могут стать большоооооой занозой в твоей заднице, Морти" © Рик
7 Alex_MA
 
21.02.17
11:39
(5)Спасибо. Помогло
8 H A D G E H O G s
 
21.02.17
11:41
Почему то тема spool-ов не рассматривается в проблемах производительности от слова - вообще. А по факту - самая большая бяка, которая может возникнуть. Не пишите сложных запросов, не решайте алгоритмы в запросах. Запрос должен выбирать данные. 1С подложила знатную свинью целому поколению программистов, "все делайте запросом" переложив задачи программиста на sql, решив, что уж лучше sql извратится и выберет все нужное программисту, чем тупой 1Снег потащит мегастроки на сервер 1С и там их будет обрабатывать.
9 Дарлок
 
21.02.17
11:44
(8) это от вэбщиков пришло.
непонятно, кому вообще в голову пришло тащить такой подход в ERP-системы
10 spock
 
21.02.17
12:07
(8) уж лучше sql покрутит мегастроки в своей голове, чем 100-500 клиентов к себе это потащат через сетевой интерфейс.