powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Джойн с временной таблицей сильно замедляет запрос.
9 сообщений из 9, страница 1 из 1
Джойн с временной таблицей сильно замедляет запрос.
    #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
Джойн с временной таблицей сильно замедляет запрос.
    #40031782
Индексов я в упор не увидел. Что насчет банально добавить OPTION(RECOMPILE). Да и актуальные планы выполнения не помешали бы.
...
Рейтинг: 0 / 0
Джойн с временной таблицей сильно замедляет запрос.
    #40031783
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На временных таблицах тоже можно иметь индексы.
Помогает...
...
Рейтинг: 0 / 0
Джойн с временной таблицей сильно замедляет запрос.
    #40031784
SamArs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Индекс есть на исходной таблице
Код: plaintext
create nonclustered index IX_НомерГруза on ДопРасходыПоГрузамИзДокументаПеревозки (НомерГруза)
Для временной нужно свой создавать?
...
Рейтинг: 0 / 0
Джойн с временной таблицей сильно замедляет запрос.
    #40031785
Вы бы для начала показали планы выполнения в формате sqlplan
...
Рейтинг: 0 / 0
Джойн с временной таблицей сильно замедляет запрос.
    #40031788
SamArs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222, сработало, спасибо!
...
Рейтинг: 0 / 0
Джойн с временной таблицей сильно замедляет запрос.
    #40031789
SamArs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Syrovatchenko, я хотел, но план, к сожалению, не пролазил по размеру файла.
...
Рейтинг: 0 / 0
Джойн с временной таблицей сильно замедляет запрос.
    #40031860
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SamArs
Sergey Syrovatchenko, я хотел, но план, к сожалению, не пролазил по размеру файла.


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


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

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


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