Оптимизация запроса к регистру накопления #747030


#0 by kuznkv
подскажите, как оптимизировать запрос, для того, чтобы он выполнялся не 1-2 минуты, а секунд 30     Документ.РасходныйОрдерНаТовары КАК РасходныйОрдерНаТовары     Документ.ОрдерНаПеремещениеТоваров КАК ОрдерНаПеремещениеТоваров                 И ТоварыКОтборуОстатки.Распоряжение ССЫЛКА Документ.РасходныйОрдерНаТовары     ТоварыКОтборуОстатки.Характеристика,                 И ТоварыКОтборуОстатки.Распоряжение ССЫЛКА Документ.РасходныйОрдерНаТовары     ВЫБОР         КОГДА ОтборРазмещениеТоваровТоварыОтбор.СтатусУказанияСерий В (6, 8, 10)                 И ОтборРазмещениеТоваровТоварыОтбор.Ссылка.Распоряжение ССЫЛКА Документ.РасходныйОрдерНаТовары ГДЕ     (ОтборРазмещениеТоваровТоварыОтбор.Ссылка.Проведен                 И ОтборРазмещениеТоваровТоварыОтбор.Ссылка.Распоряжение В                     (ВЫБРАТЬ                         РаспоряженияНаОтбор.Распоряжение                     ИЗ                     ГДЕ                         НЕ РаспоряженияНаОтбор.Распоряжение ССЫЛКА Документ.ЗаданиеНаПеревозку)                     ГДЕ                         РаспоряженияНаОтбор.Распоряжение ССЫЛКА Документ.ЗаданиеНаПеревозку)) СГРУППИРОВАТЬ ПО     ВЫБОР         КОГДА ОтборРазмещениеТоваровТоварыОтбор.СтатусУказанияСерий В (6, 8, 10)                 И ОтборРазмещениеТоваровТоварыОтбор.Ссылка.Распоряжение ССЫЛКА Документ.РасходныйОрдерНаТовары
#1 by John83
проще по порядку смотреть, какой кусок выполняется дольше и над ним уже думать
#2 by mikecool
а почему 30, а не 5 секунд??
#3 by Fragster
скачать консоль, которая замеряет отдельные куски и посмотреть. например
#4 by kuznkv
John83 - код обращения к регистру накоплений. Именно в нем и затык происходит. По отдельности все запросы выполняются моментом. Даже блок запроса к регистру по одному документу летает.
#5 by kuznkv
mikecool - можно и 5. Даже наверное лучше 5 :)
#6 by kuznkv
Fragster - сейчас попробую
#7 by John83
если речь идет про РегистрНакопления.ТоварыКОтбору.Остатки то могу только посоветовать в параметрах ВТ по возможности сузить отбор по порядку реквизитов. Т.е. отобрать по первому измерению, потом по второму и т.д. ИЗ РегистрНакопления.ЗаказыПокупателей.Остатки(,Номенклатура в (&Номенклатура) и ХарактеристикаНоменклатуры В (&Характеристика)) отработает быстрее, чем просто ИЗ РегистрНакопления.ЗаказыПокупателей.Остатки(, ХарактеристикаНоменклатуры В (&Характеристика))
#8 by kuznkv
у меня отбор идет уже по списку отобранных распоряжений. Т.е. номенклатура отбирается по условию вхождения в распоряжение(регистратор)
#9 by John83
какова структура регистра?
#10 by kuznkv
Измерения: Распоряжения Номенклатура Характеристика Серия     Ресурсы: КОтбору Отбирается Отобрано     Реквизиты: СерияОтобрано Упаковка ОтобраноУпаковок
#11 by Marine Band
РегистрНакопления.ТоварыКОтбору.Остатки(             , Заменить на соединение. В запросе целый кладезь неоптимального программирования.
#12 by John83
попробуй при получении своих распоряжений поставить им индекс PS можешь заодно сравнить с
#13 by kuznkv
В тестовой базе я так и сделала. Запрос выполняется также. Это первое что я поменяла. :)
#14 by kuznkv
Ок. Попробую добавить индекс
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С