Цель
Оптимизировать системный алгоритм расчета № 103 “Расчет потребностей в ресурсах с учетом ограничений” на платформах Oracle и MS SQL. Оптимизацию произвести с помощью прямого sql (DSQL). Реализация
В системном алгоритме расчета № 103 добавлена настройка Основные параметры->Алгоритм->Пятый.
В данном режиме алгоритм позволяет решать следующие задачи:
- расчет журнала резервирования без загрузки ресурсов (MRP-расчет).
- расчет потребности по всем операциям
- расчет потребности по контрольным операциям
- учет размера партии запуска
- учет кратности запуска
- учет фактического (начального) наличия, НЗП
- учет процента потерь на операции
- учет потерь на партию
- учет страхового запаса
- учет вариантов изготовления
- направление расчета - вперед-как можно позже
Пример одного из результатов оптмизации: исходные данные - план производства, 926 позиций документа время работы алгоритма 103-3 - 2 суток (выполнение было прервано) время работы алгоритма 103-5 - ~ 4 ч. объем рассчитанных данных - 792 000 записей журнала резервирования, 2 700 000 записей потребности
Не скажу, что потенциала нет. Есть еще узкие места, где можно опитимизировать, но значительного ускорения в разы навряд ли удастся добиться, т.к. алгоритм изначально разрабатывался с учетом прямого sql.
Хотя здесь тоже во многих местах надо экпериментировать.
Было бы здОрово, если бы такие возможности нашлись. Указанные в контрольном примере данные - это примерно 10-20% от реальной базы заказчика, т.е. расчет плана теоретически получается больше суток. Хотелось бы уложиться в одну ночь расчета.