Новости
Столкнулся с необходимостью создания запроса с неколькими подряд LEFT JOIN.
INSERT INTO to_reserve_mcr (cid, to_reserve) SELECT distinct g.id, ROUND(SUM(pacr.volume_discontented), 5) FROM good AS g LEFT JOIN good_in_group as gig ON gig.good_id = g.id LEFT JOIN product_accounting_component_reserve as pacr ON pacr.component_id = g.id LEFT JOIN product_accounting_order as po ON pacr.order_id = po.id where FIND_IN_SET(gig.group_id, "125,132,160,233,136,252,134,313,162,312") AND (po.state <> "closed") GROUP BY g.id
Здесь product_accounting_order - таблица заказов.
По мере того, как база данных разрослась, запрос стал выполняться очень долго, вплоть до того, что апач обрывал соединение с браузером раньше, чем выполнялся запрос.
Долго пытался оптимизировать запрос, и заметил, что на самом деле, хоть число заказов растет, заказов невыполненных (state <> 'closed') все время ограниченно. Последовал совету Интернета, и открытые заказы перенес в маленький предварительный запрос
select id from product_accounting_order where state <> 'cancelled'
а результат вставляю в большой запрос:
INSERT INTO to_reserve_mcr (cid, to_reserve) SELECT distinct g.id, ROUND(SUM(pacr.volume_discontented), 5) FROM good AS g LEFT JOIN good_in_group as gig ON gig.good_id = g.id LEFT JOIN product_accounting_component_reserve as pacr ON pacr.component_id = g.id where FIND_IN_SET(pacr.order_id, "263,264,457,526,536,596,602,603") AND FIND_IN_SET(gig.group_id, "125,132,160,233,136,252,134,313,162,312") GROUP BY g.id
Время выполнения запроса сократилось в 10 раз.
В системе управления производством Завод365 у инженера системы менеджмента качества появилась возможность прикреплять инструмент контроля или измерения к контрольному параметру операции в технологической карте изделия при просмотре производственного заказа
Читать далееБлок переведен на новый интерфейс. Также введена процедура автоматического закрытия нарядов рабочих на конец текущего дня.
Читать далееУ мастера производства появилась возможность прикреплять оснастку к технологической карте изделия при просмотре производственного заказа
Читать далееДля формирования счета на оплату розничному покупателю в системе Дилер365 появилась возможность добавить один или несколько расчетных счетов контрагенту
Читать далееНаряду с рабочим местом логиста (центр управления доставкой ЦУД) в системе Завод365 разработан интерфейс для менеджеров продаж. В нем менеджер видит полную картину в части доставки заказов своих клиентов
Читать далееВнесли доработки функционала Завод365 в части печати этикеток чернильным маркиратором
Читать далее