Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Джойн с временной таблицей сильно замедляет запрос. / 9 сообщений из 9, страница 1 из 1
28.12.2020, 14:15
    #40031781
SamArs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Джойн с временной таблицей сильно замедляет запрос.
Добрый день! Есть следующий запрос:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
create table #ZSPtype (_Fld11714 varchar (20),
						MINtype varchar (20),
						MAXtype varchar (20))
insert into #ZSPtype (_Fld11714,
						MINtype,
						MAXtype)
select 
_Fld11714, 
min (ТипЗаданияЗСП) as MINtype,
max (ТипЗаданияЗСП) as MAXtype
from _InfoRg11712
where ТипЗаданияЗСП is not null
and ТипЗаданияЗСП <> ''
group by _Fld11714

create table #NDS (ЗСП varchar (50), 
					СтавкаНДС varchar (20))
insert into #NDS (ЗСП, СтавкаНДС)

select
ЗСП,
СтавкаНДС
from ОплатыПеревозчикам_ДанныеВзаиморасчетов
where СтавкаНДС is not null
and СтавкаНДС <> ''

/*create table #Dop (НомерГруза varchar (50),
					ДопРасходы numeric (25,3))
insert into #Dop (НомерГруза, ДопРасходы)

select
НомерГруза,
sum (СуммаРуб) as ДопРасходы
from ДопРасходыПоГрузамИзДокументаПеревозки
where Статус = 'Груз забран'
and НомерГруза is not null
group by НомерГруза*/

select 
a._Fld11714 as НомерЗСП,
a._Fld11815 as НомерЗТО,
a._Fld11715 as НомерГруза,
a._Fld11734 as Логист,
a._Fld14006 as СтатусЗСП,
a.СтатусЗТО,
a._Fld11726 as ДатаПогрузки,
a.ТипЗаданияЗСП,
case
	when c.MAXtype = 'Экспедирование'
	then c.MAXtype
	else c.MINtype
	end as ТипЗаданияРасчетный,
a.СтавкаЗаГруз as СтавкаЗаГруз,
a.СуммаПоЗаявке as СуммаПоЗаявке,
a._Fld11840 as ИтогСумВыплПеревозчику,
a.ИтоговаяСуммаРуб,
a.ЗСПЮрЛицоSAMCOM,
b._Fld11393 as Направление,
d.СтавкаНДС/*,
e.ДопРасходы*/
from _InfoRg11712 as a
Left join _InfoRg11388 as b
on a._Fld11716 = b._Fld11403
left join #ZSPtype as c
on a._Fld11714 = c._Fld11714
left join #NDS as d
on a._Fld11714 = right (left (d.ЗСП, 27), 5)
/*left join #Dop as e
on a._Fld11715 = e.НомерГруза*/
where a._Fld11726 not in ('2001-01-01 01:01:01.0000000', '2001-01-01 00:00:00.0000000')
and b._Fld11393 is not null
order by a._Fld11714

drop table #ZSPtype
drop table #NDS
drop table #Dop

В таком виде запрос отрабатывает за 4 секунды, итоговая выборка 130К строк. Если раскомментить все закомменченные фрагменты кода, то запрос начинает отрабатывать около 2 минут. На всех используемых таблицах есть идентичные индексы по ключевым полям. В чем может быть проблема?
...
Рейтинг: 0 / 0
28.12.2020, 14:17
    #40031782
Джойн с временной таблицей сильно замедляет запрос.
Индексов я в упор не увидел. Что насчет банально добавить OPTION(RECOMPILE). Да и актуальные планы выполнения не помешали бы.
...
Рейтинг: 0 / 0
28.12.2020, 14:19
    #40031783
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Джойн с временной таблицей сильно замедляет запрос.
На временных таблицах тоже можно иметь индексы.
Помогает...
...
Рейтинг: 0 / 0
28.12.2020, 14:22
    #40031784
SamArs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Джойн с временной таблицей сильно замедляет запрос.
Индекс есть на исходной таблице
Код: plaintext
create nonclustered index IX_НомерГруза on ДопРасходыПоГрузамИзДокументаПеревозки (НомерГруза)
Для временной нужно свой создавать?
...
Рейтинг: 0 / 0
28.12.2020, 14:23
    #40031785
Джойн с временной таблицей сильно замедляет запрос.
Вы бы для начала показали планы выполнения в формате sqlplan
...
Рейтинг: 0 / 0
28.12.2020, 14:26
    #40031788
SamArs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Джойн с временной таблицей сильно замедляет запрос.
aleks222, сработало, спасибо!
...
Рейтинг: 0 / 0
28.12.2020, 14:27
    #40031789
SamArs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Джойн с временной таблицей сильно замедляет запрос.
Sergey Syrovatchenko, я хотел, но план, к сожалению, не пролазил по размеру файла.
...
Рейтинг: 0 / 0
28.12.2020, 16:54
    #40031860
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Джойн с временной таблицей сильно замедляет запрос.
SamArs
Sergey Syrovatchenko, я хотел, но план, к сожалению, не пролазил по размеру файла.


хорошо написано
...
Рейтинг: 0 / 0
28.12.2020, 16:57
    #40031863
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Джойн с временной таблицей сильно замедляет запрос.
SamArs
Sergey Syrovatchenko, я хотел, но план, к сожалению, не пролазил по размеру файла.


можно выкладывать так:
https://www.brentozar.com/pastetheplan/

кстати, может эту возможность в фак вынести?
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Джойн с временной таблицей сильно замедляет запрос. / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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