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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.06.2011, 11:38   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Katuxa Посмотреть сообщение
Она отрабатывает правильно, но по времени где-то 2-3 минуты.
попробую произнести на русском языке то, что вы написали

================
для каждой записи из 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 в Аксапте (поищите на форуме, обсуждалось)
__________________
полезное на axForum, github, vk, coub.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Неправильный тип аргумента функции преобразования 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, время: 16:29.