Имя: Пароль:
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) да, видимо корявая таблица
Слона не заметил.
По логике не должно было быть повторов, интересно.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн