AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.01.2003, 14:16   #1  
Lihgt is offline
Lihgt
Участник
 
46 / 70 (3) ++++
Регистрация: 16.04.2002
Адрес: Москва
Местная оптимизация
Повторю задачу:
Проанализировать предложенную оптимизацию на предмет ее применимости в наших условиях.

Что было сделано
1. У заказа был установлен фиксированный курс валюты.
(метод adjustAmount вызывается, когда курс валюты заказа не совпадает с текущим курсом валюты)
2. В класс Tax добавлен счетчик, в котором суммировалось кол-во циклов в while select
3. В форме заказы выбираем пункт меню Запросы-Итоги и смотрим результат

В результате получили:
до оптимизации
1 строка - 2 итерации
2 строки - 8 итераций
3 строки - 18 итераций
4 строки - 32 итерации,
т.е. итераций = 2 * (строк ^ 2)... 100 строк -> 20000 итераций

после оптимизации
1 строка - 2 итерации
2 строки - 4 итерации
3 строки - 6 итераций
4 строки - 8 итераций,
т.е. итераций = 2 * строк ... 100 строк -> 200 итераций
Разница очевидна

А чтобы не жертвовать можно так поменять код
PHP код:
void adjustAmount(ExchRate   _exchRate,
                  
ExchRate   _exchrateSecondary)
{
    if (
_exchRate)
    {
        
ttsbegin;

        while 
select forupdate taxWorkTrans
        where taxWorkTrans
.headingRecId  == headingRecId         &&
              
taxWorkTrans.exemptTax     == NoYes::No
            
// Оптимизация расчета налогов (c) KURA  & Lihgt -->
           
&& (taxCalculateTotal || taxWorkTrans.SourceRecId   == this.sourceRecId())
            
// Оптимизация расчета налогов (c) KURA  & Lihgt <--
        
{
 ... 
P.S. У нас используются только РУБ, следовательно, все эти прелести не для нас
За это сообщение автора поблагодарили: raz (6), Logger (10).
Теги
faq, tax, налоги, оптимизация, производительность

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вызов метода базового класса Eldar9x DAX: Программирование 15 22.03.2008 19:10
jerry-dynamics: tax codes Blog bot DAX Blogs 0 16.06.2007 11:20
Вызов класса из другого класса Protey DAX: Программирование 9 26.02.2007 11:01
передача курсора в два класса kitty DAX: Программирование 3 09.08.2006 13:21
Запустить метод класса loka DAX: Программирование 2 13.03.2006 15:40

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 06:21.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.