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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.04.2008, 22:53   #1  
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   #2  
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, время: 22:42.