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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.06.2011, 12:25   #6  
Katuxa is offline
Katuxa
Участник
 
36 / 10 (1) +
Регистрация: 13.05.2011
Цитата:
Сообщение от mazzy Посмотреть сообщение
попробую произнести на русском языке то, что вы написали

================
для каждой записи из buildTable
выбрать ВСЕ (!) записи из buildParam // в результате buildParm полностью перебирается столько раз сколько записей в buildTable

если нет записи в paramValue для комбинации buildTable, buildParam
то добавить в paramValue
================

во-первых, вы точно хотели выбирать ВСЕ возможные комбинации из buildTable, buildParam?
может эта пара у вас как-то связана?

во-вторых, у вас делается куча вложенных маленьких запросов внутри цикла.
по сути дела SQL-сервер захлебывается (ddos'ится).

попробуйте объединить запросы в один.
если логика правильна, то примерно так:
X++:
ttsbegin;
  while select BuildCode from buildTable
  join buildParam
  not exists join ParamCode from paramValue where paramValue.BuildCode == buildTable.BuildCode
                                        && paramValue.ParamCode == buildParam.ParamCode;
  {
     paramValue.BuildCode = buildTable.BuildCode;
     paramValue.ParamCode = buildParam.ParamCode;
     paramValue.insert();
  }
  ttscommit;
обратите внимание, что в этом случае запрос на SQL-сервер посылается один раз.
SQL-сервер один раз обрабатывает этот более сложный запрос вместо кучи маленьких.
далее мы от него получаем результаты один раз, а не внутри цикла.
накладных расходов меньше. profit.

будьте внимательны с not exists join в Аксапте (поищите на форуме, обсуждалось)
Сделала так, уже намного быстрее работает (за одну минуту). Спасибо! Но сейчас попробую еще другие предложенные варианты, может получится дойти до оптимального времени.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Неправильный тип аргумента функции преобразования S.Kuskov DAX: Программирование 3 07.02.2020 10:49
Журнал работы пользователей (логи)? Anais DAX: Администрирование 7 26.08.2009 09:15
Функции встроенного SQL для работы с датой Jab Straight DAX: Программирование 6 09.08.2007 00:56
Использование профилировщика и толкование результатов его работы belugin DAX: Программирование 3 22.11.2005 16:56
Есть ли функции работы со строками? kostas DAX: Программирование 2 13.05.2004 11:50

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 06:26.