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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.04.2008, 18:16   #1  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
А если
X++:
while select PMPlaceSecurityTimetable
              exists join PlaceId from PMPlaceTimeBoard
                            where PMPlaceTimeBoard.DateStart == PMPlaceSecurityTimetable.DateSecure
        outer join PMPlaceTimeBoard1
              where PMPlaceTimeBoard1.DateStart == PMPlaceSecurityTimetable.DateSecure &&
                    PMPlaceTimeBoard1.PlaceId == PMPlaceSecurityTimetable.PlaceId
                {
                   if (PMPlaceTimeBoard1)
                       timeList2.ins(PMPlaceTimeBoard1);

                }
Код я не проверял - так просто, как идея.
Старый 30.04.2008, 22:53   #2  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Цитата:
Сообщение от kashperuk
...
Код я не проверял - так просто, как идея.
...
Врядли "в лоб" поможет.

Там внутри первого цикла постоянно переинициализируется RecordSortedList. Внутри одного запроса чтобы это сделать... как минимум придется добавлять сортировку.

А вообще чтобы что-то посоветовать, нужно описать задачу. В первом цикле связь организована не по ключевым полям. Вероятно, что не хватает индексов. И сама по себе такая связь вызывает подозрение в корректности кода.

Для чего потребовался RecordSortedList во втором запросе тоже не очевидно. Можно было бы просто на запросе сортировку поставить. Возможно, с группировкой. Т.к. опять же непонятно, что является ключем на PMPlaceTimeBoard (т.е. непонятно, будут ли в RecordSortedList записи выбивать друг друга).
__________________
С уважением,
glibs®
Старый 03.05.2008, 23:56   #3  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 868 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
На первый взгляд
Во-первых, странно, что во втором select есть связь по PlaceId, которой нет в первом select.
Во-вторых, нам трудно судить о том, что действительно тормозит работу кода. Это может быть неверный план испонения обоих запросов, сложный алгоритм обработки RecordSortedList или что-то еще, что вы упустили в своем примере.
Посомтрите планы исполнения запросов и индексы на PMPlaceTimeBoard.
В-третьих, может быть подумать о том, чтобы обрабатывались не ВСЕ данные из пары PMPlaceSecurityTimetable, PMPlaceTimeBoard? Зачем обрабатывать данные от начала времен?

Как вариант. Сделайте обычный join с сортировками по PlaceId и DateStart (или DateSecure - зависит от индексов), ограничьте список полей только необходимыми, формируйте и обрабатывайте свой RecordSortedList по смене значений полей в курсоре (PlaceId и DateStart)... и не забудьте по окончаению цикла обработать последний RSL.
кривовато, конечно, но что не сделаешь ради перфоманса

to kashperuk. Сомневаюсь, что такое вообще возможно в Аксапте.
Теги
ax4.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как организовать цикл exodus DAX: Программирование 1 21.11.2007 10:50
Складская аналитика. Авторезервирование. Бесконечный цикл. andenis DAX: Функционал 8 27.06.2007 08:12
Цикл, ttsabort и continue PavelX DAX: Программирование 8 15.01.2007 07:11
Report в цикле с параметром kvg6 DAX: Программирование 3 20.06.2006 15:06
Перебор контролов в цикле Yurik DAX: Программирование 10 23.01.2003 14:00

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

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

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