Старый 26.09.2023, 20:16   #1
_traktor_
Новичок
 
Регистрация: 25.06.2022
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
_traktor_ пока не определено
По умолчанию Оптимизировать процедуру

Достаточно долгое формирование обработки, более 10 минут.
Какие варианты оптимизации кода ?
Вложения
Тип файла: zip остатки товаров на дату.zip (19.6 Кб, 5 просмотров)
_traktor_ вне форума   Ответить с цитированием
Старый 02.10.2023, 16:19   #2
Ветер в поле
Новичок
 
Регистрация: 29.04.2014
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Ветер в поле пока не определено
По умолчанию

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

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

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

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

Проблема с главным циклом - как раз он и есть, как его можно оптимизировать ?
_traktor_ вне форума   Ответить с цитированием
Старый 03.10.2023, 10:56   #4
Ветер в поле
Новичок
 
Регистрация: 29.04.2014
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Ветер в поле пока не определено
По умолчанию

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

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

Метки
код, процедура

Любые журналы Актион-МЦФЭР регулярно !!! Пишите https://www.nado.in/private.php?do=newpm&u=12191 или на электронный адрес pantera@nado.ws


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 21:14. Часовой пояс GMT +1.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot