Имя: Пароль:
1C
1С v8
Непонятки с запросом. Планы запросов с картинками прилагаю.
0 ptiz
 
15.03.23
18:37
Что-то странное с запросом.

Имеем запрос, который работает ОЧЕНЬ, ну очень медленно в "Вариант1" и быстро в "Вариант2".

РегистрСведений.МойРегистр - периодический РС, имеет 25 млн записей
Измерение "Значение" в РС - первое, имеет отдельный индекс. Тип - справочник определенного типа.

Временная таблица Таб1 - индексирована по полю "Значение", хотя значений там немного, несколько тысяч.

Вариант1 (медленный):

ВЫБРАТЬ РАЗЛИЧНЫЕ
			МойРегистр.Значение,
			МойРегистр.Статус
ПОМЕСТИТЬ МойРегистр
		ИЗ
			РегистрСведений.МойРегистр КАК МойРегистр
			ВНУТРЕННЕЕ СОЕДИНЕНИЕ Таб1 КАК Таб1
			ПО Таб1.Значение = МойРегистр.Значение


Вариант2 (быстрый):

ВЫБРАТЬ РАЗЛИЧНЫЕ
			МойРегистр.Значение,
			МойРегистр.Статус
ПОМЕСТИТЬ МойРегистр
		ИЗ
			РегистрСведений.МойРегистр КАК МойРегистр
ГДЕ
		Значение В (ВЫБРАТЬ Таб1.Значение ИЗ Таб1)


Запрос в SQL при этом выглядит так:

INSERT INTO #tt7 (_Q_001_F_000RRef, _Q_001_F_001RRef) SELECT DISTINCT
T1._Fld18584RRef,
T1._Fld18588RRef
FROM _InfoRg18583 T1 WITH(NOLOCK)
INNER JOIN #tt4 T2 WITH(NOLOCK)
ON (T2._Q_001_F_002RRef = T1._Fld18584RRef)


Вот тут положил планы запроса и картинку сравнения двух планов.
https://disk.yandex.ru/d/p5qKV-yfN_-aBw


Почему-то первый вариант на картинке выдаёт дикое количество строк. Видимо, поэтому тормозит.
https://disk.yandex.ru/i/J7K2PLhaVfbSXA

Статистику обновлял.

В чем дело? Почему внутреннее соединение так тормозит?
1 Dno1C
 
15.03.23
18:57
Почему у тебя в медленном варианте в Таб1 более миллиарда записей?
В быстром варианте всего 5 тысяч
2 H A D G E H O G s
 
15.03.23
19:26
(0) У тебя повторения в Таб1.
3 H A D G E H O G s
 
15.03.23
19:28
И в плане запроса, что для СОЕДИНЕНИЯ нет Различных
4 H A D G E H O G s
 
15.03.23
19:30
Еще и вставка в индексированную ВТ.
Разберитесь с мешаниной в планах
5 ptiz
 
15.03.23
19:39
(2) да, видимо корявая таблица
Слона не заметил.
По логике не должно было быть повторов, интересно.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший