|
v8: Оптимизация Партионного запроса УПП 1.3.18 - 2 | ☑ | ||
---|---|---|---|---|
0
Gav_Gav
10.01.12
✎
13:41
|
v8: Оптимизация Партионного запроса УПП 1.3.18
Вопрос,к HADGEHOGs и Fragster, не совсем понятно чем закончилась оптимизация запроса ЗаполнитьЗапросПартийНаСкладахУпр? Стоит такая же проблема, ПУ по производительности, работает неудовлетворительно. Пытался средствами SQL сделать: http://1c-gmix.webaltera.ru/index.php?option=com_content&view=article&id=30:-1-&catid=18&Itemid=36 не взлетело, придется внимательно приглядеться к этому запросу. |
|||
1
Gav_Gav
11.01.12
✎
09:38
|
неужели никто не оптимизировал ЗаполнитьЗапросПартийНаСкладахУпр? =(
|
|||
2
braynt
11.01.12
✎
09:45
|
Тоже изменил запрос. Сделал через временную таблицу. Стало быстрее
|
3 |
||
3
Gav_Gav
11.01.12
✎
09:53
|
(2) посмотреть можно?
|
|||
4
braynt
12.01.12
✎
10:01
|
Если ты посмотришь типовой запрос. То выбор из регистра сведений списанныеТовары выполняется несколько раз. Вот и её я как раз и помещаю во временную таблицу.
Запрос.Текст = "ВЫБРАТЬ * |ПОМЕСТИТЬ ТоварыСписанные |ИЗ | РегистрСведений.СписанныеТовары КАК СписанныеТовары |ГДЕ | СписанныеТовары.Регистратор = &ОсновнойДокумент | |ИНДЕКСИРОВАТЬ ПО |Склад, |Номенклатура |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТоварыСписанные.НомерСтрокиДокумента КАК НомерСтрокиДокумента, | ПартииТоваровНаСкладах.Номенклатура, | ПартииТоваровНаСкладах.ДокументОприходования КАК ДокументОприходования, | "+ПараметрыЗапроса_ДатаОприходования.ДокОприходованияДата_Выбор+" | ПартииТоваровНаСкладах.Склад, | ПартииТоваровНаСкладах.ХарактеристикаНоменклатуры, | ПартииТоваровНаСкладах.СерияНоменклатуры, | ПартииТоваровНаСкладах.Качество, | ПартииТоваровНаСкладах.Заказ, | ПартииТоваровНаСкладах.КоличествоОстаток КАК Количество, | ПартииТоваровНаСкладах.СтоимостьОстаток КАК Стоимость, | ПартииТоваровНаСкладах.СтатусПартии, | ВЫБОР | КОГДА ТоварыСписанные.СерияНоменклатуры = ПартииТоваровНаСкладах.СерияНоменклатуры | ТОГДА 0 | ИНАЧЕ 1 | КОНЕЦ КАК ЧислоСерияНоменклатуры, | ВЫБОР | КОГДА ТоварыСписанные.ДокументПартии = НЕОПРЕДЕЛЕНО | ТОГДА 0 | ИНАЧЕ ВЫБОР | КОГДА ТоварыСписанные.ДокументПартии = ПартииТоваровНаСкладах.ДокументОприходования | ТОГДА 0 | ИНАЧЕ 1 | КОНЕЦ | КОНЕЦ КАК ЧислоДокументОприходования, | ВЫБОР | КОГДА ТоварыСписанные.ЗаказПартии = НЕОПРЕДЕЛЕНО | ТОГДА 0 | ИНАЧЕ ВЫБОР | КОГДА ПартииТоваровНаСкладах.Заказ = &ПустойЗаказ | ТОГДА 1 | ИНАЧЕ 0 | КОНЕЦ | КОНЕЦ КАК ЧислоЗаказ, | ВЫБОР | КОГДА ПартииТоваровНаСкладах.СтатусПартии = &НаКомиссию | ТОГДА 1 | ИНАЧЕ 0 | КОНЕЦ КАК ЧислоСтатусПартии |ИЗ | ТоварыСписанные КАК ТоварыСписанные | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.Остатки( | &Дат, Организация = &Организация | и Номенклатура В | (ВЫБРАТЬ Различные | СписанныеТовары.Номенклатура | ИЗ | ТоварыСписанные КАК СписанныеТовары)" + ?(ВестиПартионныйУчетПоСкладам, " | И (Склад В | (ВЫБРАТЬ Различные | СписанныеТовары.Склад | ИЗ | ТоварыСписанные КАК СписанныеТовары | ) ИЛИ Склад = &ПустойСклад)", "") + ") КАК ПартииТоваровНаСкладах | По ТоварыСписанные.Номенклатура = ПартииТоваровНаСкладах.Номенклатура | И ТоварыСписанные.ХарактеристикаНоменклатуры = ПартииТоваровНаСкладах.ХарактеристикаНоменклатуры | И (ВЫБОР | КОГДА ПартииТоваровНаСкладах.Качество = &ПустоеКачество | ТОГДА ИСТИНА | ИНАЧЕ ВЫБОР | КОГДА ТоварыСписанные.Качество = &ПустоеКачество | ТОГДА ПартииТоваровНаСкладах.Качество = &КачествоНовый | ИНАЧЕ ПартииТоваровНаСкладах.Качество = ТоварыСписанные.Качество | КОНЕЦ | КОНЕЦ) | " + ?(ВестиПартионныйУчетПоСкладам, "И (ПартииТоваровНаСкладах.Склад = ТоварыСписанные.Склад ИЛИ ПартииТоваровНаСкладах.Склад = &ПустойСклад)", "") + " | И (ВЫБОР | КОГДА ТоварыСписанные.ДопустимыйСтатус1 <> &ПустойСтатус | ИЛИ ТоварыСписанные.ДопустимыйСтатус2 <> &ПустойСтатус | ИЛИ ТоварыСписанные.ДопустимыйСтатус3 <> &ПустойСтатус | ИЛИ ТоварыСписанные.ДопустимыйСтатус4 <> &ПустойСтатус | ТОГДА ПартииТоваровНаСкладах.СтатусПартии = &ПустойСтатус | ИЛИ ПартииТоваровНаСкладах.СтатусПартии = &СтатусПартииПоОрдеру | ИЛИ ПартииТоваровНаСкладах.СтатусПартии = ТоварыСписанные.ДопустимыйСтатус1 | ИЛИ ПартииТоваровНаСкладах.СтатусПартии = ТоварыСписанные.ДопустимыйСтатус2 | ИЛИ ПартииТоваровНаСкладах.СтатусПартии = ТоварыСписанные.ДопустимыйСтатус3 | ИЛИ ПартииТоваровНаСкладах.СтатусПартии = ТоварыСписанные.ДопустимыйСтатус4 | ИНАЧЕ ИСТИНА | КОНЕЦ) | И (ВЫБОР | КОГДА ТоварыСписанные.СписыватьТолькоПоЗаказу = ИСТИНА | ТОГДА ВЫБОР | КОГДА ПартииТоваровНаСкладах.Заказ <> ТоварыСписанные.ЗаказПартии | ТОГДА ВЫБОР | КОГДА (НЕ ТоварыСписанные.ЗаказПартии = НЕОПРЕДЕЛЕНО) | ТОГДА ЛОЖЬ | ИНАЧЕ ПартииТоваровНаСкладах.Заказ = &ПустойЗаказ | КОНЕЦ | ИНАЧЕ ИСТИНА | КОНЕЦ | ИНАЧЕ ВЫБОР | КОГДА ПартииТоваровНаСкладах.Заказ <> ТоварыСписанные.ЗаказПартии | ТОГДА ПартииТоваровНаСкладах.Заказ = &ПустойЗаказ | ИНАЧЕ ИСТИНА | КОНЕЦ | КОНЕЦ) | И (ТоварыСписанные.СерияНоменклатуры = ПартииТоваровНаСкладах.СерияНоменклатуры | ИЛИ ПартииТоваровНаСкладах.СерияНоменклатуры = &ПустаяСерияНоменклатуры) | |УПОРЯДОЧИТЬ ПО | ЧислоСерияНоменклатуры, | ЧислоДокументОприходования, | ЧислоЗаказ, | ЧислоСтатусПартии" + ?(СтратегияСтатусПартии = Перечисления.СтретегииСписанияПартийТоваровПоСтатусам.СначалаПринятыеПотомСобственные, " Убыв", "") + ", | "+ПараметрыЗапроса_ДатаОприходования.ДокОприходованияДата_Сортировка+" | ДокументОприходования" + ?(СпособОценкиМПЗ = "ЛИФО", " Убыв","") + ", | ПартииТоваровНаСкладах.Склад |ИТОГИ ПО | НомерСтрокиДокумента"; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |