|
долгий запрос | ☑ | ||
---|---|---|---|---|
0
JIeoIIoJIbD
12.09.13
✎
11:00
|
Доброго времени суток , подскажите как переписать запрос, чтобы по-быстрее работал ?
Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка |ПОМЕСТИТЬ Номенклатура |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.Ссылка В ИЕРАРХИИ | (ВЫБРАТЬ | УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателейНоменклатурныеЦеновыеГруппы.НоменклатурнаяЦеноваяГруппа | ИЗ | Документ.УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателей.НоменклатурныеЦеновыеГруппы КАК УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателейНоменклатурныеЦеновыеГруппы | ГДЕ | УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателейНоменклатурныеЦеновыеГруппы.Ссылка = &ДокПроверки) | И Номенклатура.ЭтоГруппа = ЛОЖЬ | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.НоменклатурнаяГруппа В | (ВЫБРАТЬ | УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателейНоменклатурныеЦеновыеГруппы.НоменклатурнаяЦеноваяГруппа | ИЗ | Документ.УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателей.НоменклатурныеЦеновыеГруппы КАК УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателейНоменклатурныеЦеновыеГруппы | ГДЕ | УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателейНоменклатурныеЦеновыеГруппы.Ссылка = &ДокПроверки) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | СчетНаОплатуПокупателюТовары.Ссылка КАК СчетНаОплату, | СчетНаОплатуПокупателюТовары.Номенклатура |ИЗ | Документ.СчетНаОплатуПокупателю.Товары КАК СчетНаОплатуПокупателюТовары |ГДЕ | СчетНаОплатуПокупателюТовары.Номенклатура В | (ВЫБРАТЬ | РегНакНом.Ссылка | ИЗ | Номенклатура КАК РегНакНом)" ; |
|||
1
palpetrovich
12.09.13
✎
11:03
|
Документ УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателей какие-то движения по какому-то регистру делает? да - делай запрос к нему
|
|||
2
palpetrovich
12.09.13
✎
11:06
|
да и последняя часть запроса почему не
выбрать ССылка из Номенклатура, СчетНаОплатуПокупателюТовары.Ссылка левоесоединение Документ.СчетНаОплатуПокупателю.ТоварыК АК СчетНаОплатуПокупателюТовары по СчетНаОплатуПокупателюТовары.Номенклатура = ССылка ps и названия ВТ - Номенклатура - как-то некошерно :) |
|||
3
Fragster
модератор
12.09.13
✎
11:11
|
(0) добавь индекс в первой таблице
|
|||
4
Мыш
12.09.13
✎
11:15
|
Такие синонимы "УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателейНоменклатурныеЦеновыеГруппы" портят зрение.
|
|||
5
JIeoIIoJIbD
26.09.13
✎
13:11
|
(2) если я правильно понял, то вы имеете ввиду
ВЫБРАТЬ НМНКЛТР.Ссылка ИЗ Документ.СчетНаОплатуПокупателю.Товары КАК СчетНаОплатуПокупателюТовары ЛЕВОЕ СОЕДИНЕНИЕ НМНКЛТР КАК НМНКЛТР ПО СчетНаОплатуПокупателюТовары.Ссылка = НМНКЛТР.Ссылка при такой записи я успел покурить и выпить чаю, пока запрос выполнился ))) дело не тут, а в самом начале - долго выполняется кусок | Номенклатура.Ссылка |ПОМЕСТИТЬ Номенклатура |ИЗ | Справочник.Номенклатура КАК Номенклатура как быть, знающие люди, подскажите |
|||
6
Cyberhawk
26.09.13
✎
13:15
|
"долго выполняется кусок" - на глаз определил?
|
|||
7
JIeoIIoJIbD
26.09.13
✎
13:16
|
(6) покоцал запрос на куски
|
|||
8
MadHead
26.09.13
✎
13:28
|
Первым делом нужно заменить вложенные запросы на временную таблицу и проиндексировать поле по которому накладывается условие.
|
|||
9
JIeoIIoJIbD
26.09.13
✎
13:29
|
ВЫБРАТЬ
Номенклатура.Ссылка ПОМЕСТИТЬ НМНКЛТР ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.Ссылка В ИЕРАРХИИ (ВЫБРАТЬ ТипыЦенПоГруппамНоменклатурыДляПокупателей.НоменклатурнаяЦеноваяГруппа КАК Номенклатура ИЗ РегистрСведений.ТипыЦенПоГруппамНоменклатурыДляПокупателей КАК ТипыЦенПоГруппамНоменклатурыДляПокупателей ГДЕ ТипыЦенПоГруппамНоменклатурыДляПокупателей.Регистратор = &ДокПроверки) И Номенклатура.ЭтоГруппа = ЛОЖЬ ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ Номенклатура.Ссылка ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.НоменклатурнаяГруппа В (ВЫБРАТЬ ТипыЦенПоГруппамНоменклатурыДляПокупателей.НоменклатурнаяЦеноваяГруппа КАК Номенклатура ИЗ РегистрСведений.ТипыЦенПоГруппамНоменклатурыДляПокупателей КАК ТипыЦенПоГруппамНоменклатурыДляПокупателей ГДЕ ТипыЦенПоГруппамНоменклатурыДляПокупателей.Регистратор = &ДокПроверки) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СчетНаОплатуПокупателюТовары.Ссылка КАК СчетНаОплату, СчетНаОплатуПокупателюТовары.Номенклатура ИЗ Документ.СчетНаОплатуПокупателю.Товары КАК СчетНаОплатуПокупателюТовары ГДЕ СчетНаОплатуПокупателюТовары.Номенклатура В (ВЫБРАТЬ РегНакНом.Ссылка ИЗ НМНКЛТР КАК РегНакНом) на данный момент запрос выглядит следующим образом , выполняется 5 - 6 секунд |
|||
10
GRAF_84
26.09.13
✎
13:52
|
Не проверял, но должен выполняться быстрее.
ВЫБРАТЬ УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателейНоменклатурныеЦеновыеГруппы.НоменклатурнаяЦеноваяГруппа ПОМЕСТИТЬ ВТ_НоменклатурныеЦеновыеГруппы ИЗ Документ.УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателей.НоменклатурныеЦеновыеГруппы КАК УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателейНоменклатурныеЦеновыеГруппы ГДЕ УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателейНоменклатурныеЦеновыеГруппы.Ссылка = &ДокПроверки СГРУППИРОВАТЬ ПО УстановкаТиповЦенПоГруппамНоменклатурыДляПокупателейНоменклатурныеЦеновыеГруппы.НоменклатурнаяЦеноваяГруппа ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Номенклатура.Ссылка ПОМЕСТИТЬ Номенклатура ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.Ссылка В ИЕРАРХИИ (ВЫБРАТЬ ВТ_НоменклатурныеЦеновыеГруппы.НоменклатурнаяЦеноваяГруппа ИЗ ВТ_НоменклатурныеЦеновыеГруппы КАК ВТ_НоменклатурныеЦеновыеГруппы) И Номенклатура.ЭтоГруппа = ЛОЖЬ СГРУППИРОВАТЬ ПО Номенклатура.Ссылка ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ Номенклатура.Ссылка ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.НоменклатурнаяГруппа В (ВЫБРАТЬ ВТ_НоменклатурныеЦеновыеГруппы.НоменклатурнаяЦеноваяГруппа ИЗ ВТ_НоменклатурныеЦеновыеГруппы КАК ВТ_НоменклатурныеЦеновыеГруппы) СГРУППИРОВАТЬ ПО Номенклатура.Ссылка ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СчетНаОплатуПокупателюТовары.Ссылка КАК СчетНаОплату, СчетНаОплатуПокупателюТовары.Номенклатура ИЗ Документ.СчетНаОплатуПокупателю.Товары КАК СчетНаОплатуПокупателюТовары ГДЕ СчетНаОплатуПокупателюТовары.Номенклатура В (ВЫБРАТЬ РегНакНом.Ссылка ИЗ Номенклатура КАК РегНакНом) |
|||
11
Нуф-Нуф
26.09.13
✎
13:54
|
подзапросы во временную таблицу и индексом. во временной таблице Номенклатура добавить индекс
|
|||
12
JIeoIIoJIbD
26.09.13
✎
15:36
|
(10) спасибо добрый Человек , еще добавил к Вашему решению отбор по дате и все получилось как нельзя лучше . Спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |