Скорость выполнения запроса от условия с оператором "в". #208448


#0 by Enot
Запрос с условием "Условие(МПЗ в СписокМПЗ)" работает медленне в 15 раз, чем с условием "Условие(СписокМПЗ.НайтиЗначение(МПЗ) > 0)" или "Условие(СписокМПЗ.Принадлежит(МПЗ) = 1)". СписокМПЗ имеет значения. Все запросы возращают одинаковые итоги. База SQL.
#1 by Пудель
насколько я помню, sql-интерпретация 7.7 для отбора списком то ли отдельный запрос для каждого элемента списка делает, то ли что-то подобное...
#2 by Uho
ну... вообще то в доке написано "Скорость выполнения запросов оптимизирована под использование опера­тора принадлежности, как в клиент-серверной, так и в файл-серверной версии системы 1С:Предприятие."
#3 by Пудель
so ... what? :)))
#4 by Builder
2 Странно, у меня наоборот. "В" работает в несколько раз быстрее чем Принадлежит. База SQL. Что я делаю не так?
#5 by Builder
Вдогонку к .Перепутал с "ПринадлежитГруппе". А с Принадлежит надо проверить.
#6 by dk
А если в список добавить группу?
#7 by Gloom
При использовании "Условие(ЧтоТо в Список)" 1цэ на каждый элемент списка создаёт, компилирует, выполняет и удаляет хранимую процедуру. Результат выполнения процедуры помещается во временную таблицу. Причём для справочников отрабатывается иерархия по родителю. В итоге, чем больше список, тем медленнее запрос.При использовании НайтиЗначение или Принадлежит выборка полностью передаётся на клиента и уже на нём фильтруется.В общем скорость зависит от размеров справочников, количества групп в них и, разумеется, размера списка значений...
#8 by Enot
Спасибо. Размер списка 7000. Справочник 4 уровневый, 24 000 элементов. Движений в регистре около 40 000.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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