Оптимизировать процедуру

Крайне низкокачественный код у отчета. Так писали 25 лет назад на заре 7.7
Если база работает на SQL, то 10 минут говорят о том, что не так уж и много товаров.

Увеличить скорость, в принципе, не сложно. Отказаться от обращений через точку, т.е. Запрос.Товар.ЭтоГруппа() заменять на Запрос.ЭтоГруппа("Товар"). Более того, там где не надо групп, необходимо использовать конструкцию "Группировка Товар без групп;"
Необходимо стараться получать максимум информации в запросе. Т.е. вместо Запрос.Партия.ПерваяЦена в запросе добавить "ПерваяЦена = Регистр.ОстаткиТоваров.Партии.ПерваяЦена;" и потом обращаться Запрос.ПерваяЦена
Не использовать функции в запросе типа ПустаяСтрока(Артикул) = 0. Можно заменить на Артикул >= "!". На SQL версии 1С такие функции приводят к тому, что все эти функции выполняются на клиенте, а не на SQL-сервере. Это ОЧЕНЬ медленно.
Ну и вообще надо читать же документацию - там всего 4 книги. Лучше за неделю научиться и за день сделать, чем неделю экспериментировать с таким позорным результатом. Надо изучать типовые конфигурации и стараться писать лучше, чем там.
 
Крайне низкокачественный код у отчета. Так писали 25 лет назад на заре 7.7
Если база работает на SQL, то 10 минут говорят о том, что не так уж и много товаров.

Увеличить скорость, в принципе, не сложно. Отказаться от обращений через точку, т.е. Запрос.Товар.ЭтоГруппа() заменять на Запрос.ЭтоГруппа("Товар"). Более того, там где не надо групп, необходимо использовать конструкцию "Группировка Товар без групп;"
Необходимо стараться получать максимум информации в запросе. Т.е. вместо Запрос.Партия.ПерваяЦена в запросе добавить "ПерваяЦена = Регистр.ОстаткиТоваров.Партии.ПерваяЦена;" и потом обращаться Запрос.ПерваяЦена
Не использовать функции в запросе типа ПустаяСтрока(Артикул) = 0. Можно заменить на Артикул >= "!". На SQL версии 1С такие функции приводят к тому, что все эти функции выполняются на клиенте, а не на SQL-сервере. Это ОЧЕНЬ медленно.
Ну и вообще надо читать же документацию - там всего 4 книги. Лучше за неделю научиться и за день сделать, чем неделю экспериментировать с таким позорным результатом. Надо изучать типовые конфигурации и стараться писать лучше, чем там.

Обьем базы 9 гб
Сервер: SQL2008+Server2016(ram64Gb+RAID10)+LAN_1GB
Клиенты: i5+ram8Gb

Проблема с главным циклом - как раз он и есть, как его можно оптимизировать ?
 
Обьем базы 9 гб
Сервер: SQL2008+Server2016(ram64Gb+RAID10)+LAN_1GB
Клиенты: i5+ram8Gb

Проблема с главным циклом - как раз он и есть, как его можно оптимизировать ?

База маленькая. Тут, наверное, можно было даже без SQL обойтись - DBF + терминалы.
Для работы с SQL надо писать уже оптимизированные коды - то, что работает быстро на DBF может сильно тормозить на SQL. И наоборот.
На что обратить внимание я писал выше. Доработка отчета требует в районе 3 часов - это 9000 рублей. Интересно - обращайтесь
 
Назад
Сверху