Как оптимизировать запрос выборки партий? #494611


#0 by Odavid
Если есть у кого интерес - выкладываю пообсуждать. Выбираются остатки по партиям, номера партий, цена. Потом отбрасываются "списанные" (оборот = 0) партии. Да что-то длинно получилось, наверняка можно оптимизировать, тем более - запрос используется при создании/заполнении документов.
#1 by kitt
не совсем понятен смысл левого соединения в вложенном подзапросе
#2 by Нуф-Нуф
еще раз напиши что ты хочешь получить. в сабже не понятно
#3 by hhhh
убери там слово Регистратор, гарантированно в 10 раз быстрее будет выполняться. В запросе он у тебя нигде не используется.
#4 by Odavid
Левое - присоединяет Цену партий к отобранным и свернутым по обороту партиям (по номенклатуре и складу). выбираются партии (номера) определенной Номенклатуры и с определенного Склада, они свертываются по обороту (документы прихода с документами расхода - получаем остаток по количяеству), далее отдельно присоединяется цена выбранных партий (виртуальная таблица ОстаткиИОбороты тоже дает ЦенуПрихода, но при свертке по обороту суммирует её по количеству операций с партией приход-расход). Но т.к. при присоединении Цены она найдется и для "свернутых" (реализованных) партий, то еще и последнее условие отбора ненулевого количества остатка по партии. да, это отгрызок остался - сначала по-другому задумывалось :) А почему "гарантировано в 10 раз быстрей"? Т.е. здесь ВТ без указания периода мне никакого выйгрыша не дает, а при выборе периодичности - еще и тормозит, выполняясь по скорости как запрос к физическому регистру? Т.е. опять уперлись в тему "А зачем в 1С такая реализация ВТ"? Меня с контрагументами что реализация кривая и урезанная - там все убеждали, что ВТ всяко быстрей обычного запроса.
#5 by Odavid
почему вопрос возник про использование Регистратора - база, где выполняется запрос, размером всего 6 ГБ, разница с регистратором и без - 4-8 сек (плавающая), что укладывается в погрешность "отклика" 1С сервера, тем более - в такую жару.
#6 by Odavid
Вот что с Регистратором хотел делать - сортировку по Дате нужно еще сделать (чтобы партии сначала брались самые ранние по дате). Пришлось еще одно условие прицепить в конце - Период (левое соединение, выбирается опять же по уже отобранному номеру партии). Теперь запрос выглядит так:
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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