Долго выполняется запрос при добавлении условия

1. user1380404 24.03.20 13:36 Сейчас в теме
Здравствуйте!
Создал новый внешний отчет со следующим запросом:

ВЫБРАТЬ
	ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
	ЦеныНоменклатурыСрезПоследних.Валюта КАК Валюта,
	ЦеныНоменклатурыСрезПоследних.Регистратор.Дата КАК РегистраторДата,
	ЦеныНоменклатурыСрезПоследних.Номенклатура.Наименование КАК НоменклатураНаименование,
	ЦеныНоменклатурыСрезПоследних.Номенклатура.Производитель КАК НоменклатураПроизводитель,
	ЦеныНоменклатурыСрезПоследних.Номенклатура.Артикул КАК НоменклатураАртикул,
	ТоварыНаСкладахОстатки.ВНаличииОстаток КАК ВНаличииКонечныйОстаток
ИЗ
	РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
			
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки

ПО
        ТоварыНаСкладахОстатки.Номенклатура.Наименование = ЦеныНоменклатурыСрезПоследних.Номенклатура.Наименование
Показать


В таком виде запрос выполняется быстро, но стоит добавить условие Остатка (не равно 0, больше 1 и т.д.) запрос выполняется очень долго.

Можете подсказать в чем тут дело?

Спасибо!
+
По теме из базы знаний
Найденные решения
7. danjer74 3 24.03.20 14:42 Сейчас в теме
(6)Делаем временную таблицу по срезу на дату, индексируем ее по номенклатуре, делаем запрос к таблице остатков РН, с условием номенклатура В (ВременнаяТаблица) и все
+
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. danjer74 3 24.03.20 13:42 Сейчас в теме
(1)Тут сразу две грубых ошибки: Не указана дата остатков, и не указана дата среза для регистра сведений. К тому же имеет смысл сделать временную таблицу из регистра и во втором условии в параметры виртуальной таблице добавить условие Номенклатура В (ВремТаблицаРС). Соединение по наименованию крайне не оптимально - соединять надо по номенклатуре (ссылка). Еще хорошо бы добавить условие по складу, если он есть. В общем наложить макисмальное количество условий, только не в ГДЕ, а в параметрах виртуальных таблиц.
+
4. dhurricane 24.03.20 14:34 Сейчас в теме
(2)
Тут сразу две грубых ошибки: Не указана дата остатков, и не указана дата среза для регистра сведений.
Мне кажется, указание даты в обоих случаях может лишь замедлить время выполнения. При условии, конечно, что итоги актуальны.
+
5. danjer74 3 24.03.20 14:38 Сейчас в теме
(4)Если создать временную таблицу по регистру, получив оттуда номенклатуру и добавить ее в условие виртуальной таблицы - толк будет. Влюбом случае наложение условий на виртуальные таблицы необходимо.
+
6. dhurricane 24.03.20 14:39 Сейчас в теме
(5) Безусловно. Я лишь про указание даты среза и даты остатков говорил.
+
7. danjer74 3 24.03.20 14:42 Сейчас в теме
(6)Делаем временную таблицу по срезу на дату, индексируем ее по номенклатуре, делаем запрос к таблице остатков РН, с условием номенклатура В (ВременнаяТаблица) и все
+
3. user1380404 24.03.20 13:47 Сейчас в теме
Ага, спасибо, попробую разобраться!)
Просто смутило, что без условия работает быстро, а вот при добавлении не очень.
Еще раз спасибо!
+
8. soft_wind 24.03.20 14:54 Сейчас в теме
а вот это что за бред?

ПО
ТоварыНаСкладахОстатки.Номенклатура.Наименование = ЦеныНоменклатурыСрезПоследних.Номенклатура.Наименование

для особо тугих По ...Наименование = ...Наименование !!!
товарищ, автор, вообще не понимает что такое объекты, элементы, ссылки ???

на этом фоне, вот это
ЦеныНоменклатурыСрезПоследних.Регистратор.Дата КАК РегистраторДата,

вообще цветочками выглядит.
вообще Регистратор.Дата ---> это Период регистра (как правило)
+
9. user1380404 24.03.20 15:25 Сейчас в теме
(8)
По ...Наименование = ...Наименование !!!

Это связь между двумя таблицами при объединении, должны же быть указаны столбцы сопоставления?

вообще Регистратор.Дата ---> это Период регистра (как правило)

Регистратор.Дата мне выдает дату последнего изменения цены, вроде работает как мне нужно)
+
10. soft_wind 24.03.20 19:24 Сейчас в теме
Гов--но код тоже работает как нужно! как это ни странно.
Однако гов--но кодеров ни где не любят.
+
11. user1380404 25.03.20 12:37 Сейчас в теме
(10) Я не для кого-то сделал этот отчет, лишь для себя.
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот