|
![]() |
#1 |
Участник
|
|
|
![]() |
#2 |
Участник
|
простое убирание обновления статуса в разноске из цикла в конец отработки всех строк, скорее всего мало повлияет на скороть обработки:
1. это не самая тяжелая операция 2. updateStatus вызывается еще при обновлении строк заказа |
|
![]() |
#3 |
Участник
|
При анализе нашли, что больше тормоза происходят в методе salesLine.lowestSalesStatus, который вызываеться из salesTable.updateBackStatus. Скорее всего из-за того что нет индекса по SalesId,SalesStatus в таблице salesLine. В итоге получается что при обработке заказа больше 1000 строк на обработку одной строки уходит порядка 10 сек.
|
|
![]() |
#4 |
Участник
|
Цитата:
Сообщение от AvrDen
![]() При анализе нашли, что больше тормоза происходят в методе salesLine.lowestSalesStatus, который вызываеться из salesTable.updateBackStatus. Скорее всего из-за того что нет индекса по SalesId,SalesStatus в таблице salesLine. В итоге получается что при обработке заказа больше 1000 строк на обработку одной строки уходит порядка 10 сек.
Последний раз редактировалось ice; 13.01.2011 в 13:47. |
|
![]() |
#5 |
Участник
|
угу.
а еще лучше - удаляйте старые уже обработанные заказы при правильном кодировании все параметры из заказа должны переноситься в документы. при правильном кодировании ни отчеты, ни обработки не должны обращаться к старым заказам при правильном кодировании обработанные заказы могут автоматически удалятся (см. параметр модуля) функционал умеет также "сокращать" строки заказа, автоматически убирая уже обработанную часть. если обработанные заказы удаляются, то на логическом уровне получается красивая картина: УЖЕ сделанное находится в фактических документах ОЖИДАЕМОЕ в ближайшем будущем находится в заказах |
|
![]() |
#6 |
северный Будда
|
При всём уважении к этому подходу - ни разу не видел на внедрениях, чтобы он применялся. Думаю, что бухгалтерия встанет на дыбы, но такого не допустит.
__________________
С уважением, Вячеслав |
|
![]() |
#7 |
Участник
|
|
|
![]() |
#8 |
Участник
|
Не самое лучшее решение...
А вы предлагали альтернативные варианты руководству ? Чем не устраивает хранение истории обработанных счетов на оплату например ? Там есть вся необходимая информация по истории заказа. Не удаляя строки заказов вы неизбежно будете получать тормоза. Со временем будет только хуже. |
|
![]() |
#9 |
Участник
|
Цитата:
X++: select minof(SalesStatus) from salesLine where salesLine.SalesId == salesId && salesLine.SalesStatus > SalesStatus::None; |
|
![]() |
#10 |
Участник
|
Цитата:
Сообщение от AvrDen
![]() При анализе нашли, что больше тормоза происходят в методе salesLine.lowestSalesStatus, который вызываеться из salesTable.updateBackStatus. Скорее всего из-за того что нет индекса по SalesId,SalesStatus в таблице salesLine. В итоге получается что при обработке заказа больше 1000 строк на обработку одной строки уходит порядка 10 сек.
|
|