Параметры виртуальных таблиц
Вопрос
Объясните, почему условия на измерения нужно писать в параметрах виртуальной таблицы, а не в ГДЕ.
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Виртуальная таблица строится подзапросом по движениям и итогам
Условие в параметрах попадает внутрь этого подзапроса, до агрегирования
Условие в ГДЕ фильтрует уже рассчитанный по всем данным результат
На ресурсы условие только в ГДЕ
Для ОстаткиИОбороты разница бывает не только в скорости
Что могут спросить следом
- Можно ли в условии использовать реквизит измерения через точку?
- Как передать список товаров в условие?
Разбор
Виртуальная таблица не хранится в базе, платформа строит её подзапросом к таблицам движений и итогов. Условие из параметров попадает внутрь этого подзапроса, и СУБД считает остатки только по нужным складам и товарам. Условие в ГДЕ накладывается снаружи, после того как посчитано всё. На маленькой базе разницы не видно, на рабочей это минуты против секунд. Условие на ресурс, например остаток меньше нуля, можно только в ГДЕ, потому что ресурс появляется после расчёта. Списки передаю через «Номенклатура В (&Товары)» или «В (ВЫБРАТЬ ... ИЗ ВТТовары)».
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.