|
|
#7 |
|
Участник
|
Цитата:
Сообщение от Masel
Я тут в очередной раз занимался оптимизацией разноски розничных продаж и наткнулся еще на пару возможных улучшений.
1. Метод writeTaxAmount_W, который тут ранее оптимизировали вызывает в цикле метод CustVendInvoiceTrans.initFromTaxWorkTrans_RU(). Там выполняется неиндексируемый запрос к злосчастной темповухе TmpTaxWorkTrans. Единственный селективный фильтр там это номер лота InventTransId, но индекса по нему нету. Получается примерно такая трассировка - на одну строку накладной одна запись в TmpTaxWorkTrans для RU, связь по номеру лота (по логике можно хранить и несколько записей, но кажется в этом случае особого профита по сравнению с индексом не будет) - получается можно до цикла по строкам получить map - ключ inventTransId, значение запись TmpTaxWorkTrans(в методе который собственно и формирует всю TmpTaxWorkTrans, т.е. дополнительных проходов не потребуется). - в цикле из мапа получать запись TmpTaxWorkTrans и ее отдавать в метод уже (в самом методе и чуть ниже придется поменять код, так что обрабатывать запись, а не курсор, но это не кажется сложным).
__________________
Sergey Nefedov |
|
|
| Теги |
| faq, tax, налоги, оптимизация, производительность |
|
|
Похожие темы
|
||||
| Тема | Ответов | |||
| Вызов метода базового класса | 15 | |||
| jerry-dynamics: tax codes | 0 | |||
| Вызов класса из другого класса | 9 | |||
| передача курсора в два класса | 3 | |||
| Запустить метод класса | 2 | |||
|