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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.09.2007, 10:04   #1  
Rimantas is offline
Rimantas
Участник
 
304 / 16 (1) ++
Регистрация: 30.04.2004
Адрес: Utena , Lithuania
Оптимизация рапорта ...
Здраствуйте ,

Пришлось сделать такой рапорт , где нужно отобрать данные >= Дата . Дело в том , что пока знаем две возможности - rangeDate.value(queryRange(fromdate, toDate)) или по value :
rangeDate.value(fromdate) . Есть и индекс по нужной дате . Вот если попробуем только value , без queryRange , то быстродействие очень хорошое . С queryRange - уже работает медленно ... . И нужно нам только первоначальная дата - чтобы данные были >= Дата . как сделать чтобы овцы были здоровые и волк сытый ... ? Наверное есть какая нибудь возможность , чтобы задать хотимое условие и непотерять быстродействие ...

С уважением , Римантас
Старый 18.09.2007, 10:14   #2  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Ничего не понял, честно говоря.

X++:
rangeDate.value(queryRange(fromDate, toDate))
и
X++:
rangeDate.value(fromDate)
это два РАЗНЫХ условия.

В первом случае получаем

fromDate <= rangeDate <= toDate, а во втором
rangeDate == fromDate

А соответственно, во втором случае, и быстродействие выше, так как данные отбираются только за одну дату.
Старый 18.09.2007, 10:55   #3  
Rimantas is offline
Rimantas
Участник
 
304 / 16 (1) ++
Регистрация: 30.04.2004
Адрес: Utena , Lithuania
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Ничего не понял, честно говоря.

X++:
rangeDate.value(queryRange(fromDate, toDate))
и
X++:
rangeDate.value(fromDate)
это два РАЗНЫХ условия.

В первом случае получаем

fromDate <= rangeDate <= toDate, а во втором
rangeDate == fromDate

А соответственно, во втором случае, и быстродействие выше, так как данные отбираются только за одну дату.
Всё ето я знаю . Но вот вопрос - есть ли возможность сделать чтобы было только одно условие - rangeDate >= fromDate ? Сделали тест - задали одну и ту же самую дату с условием fromDate <= rangeDate <= toDate ( fromDate = toDate ) . Рапорт очень медленный . С условием rangeDate == fromDate - очень быстрый . А нам нужные данные только от первой даты . К сожалению rangeDate == fromDate рабоатет только с одной датой . Как сделать чтобы рапорт поставил начяло на fromDate и дальше отобрал данные не смотря на дату ? Нас неустраивает быстродействие queryRange ...
Старый 18.09.2007, 11:09   #4  
MironovI is offline
MironovI
Участник
 
724 / 77 (4) ++++
Регистрация: 30.05.2005
Цитата:
Сообщение от Rimantas Посмотреть сообщение
есть ли возможность сделать чтобы было только одно условие - rangeDate >= fromDate ?
range.value(strfmt('>=%1', fromDate));

так что-ли?
Старый 18.09.2007, 11:09   #5  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Боюсь вас расстроить, но queryRange здесь, думаю, совершенно не причем.
Его код доступен в приложении - он просто формирует строку фильтра.

Для того, чтобы задать фильтр
rangeDate >= fromDate, можно сделать так:
X++:
    qbds.addRange(fieldNum(CustTrans, TransDate)).value(strFmt("%1..", rangeDate));
Но боюсь что производительности вам это не прибавит
Старый 18.09.2007, 13:57   #6  
nebula is offline
nebula
Участник
 
4 / 10 (1) +
Регистрация: 14.12.2006
сколько данных в результате вы получаете? если таблица большая и запросы по дате это основные запросы к данной таблице, то рассмотрите вариант поставить индекс по дате как кластерный
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Оптимизация класса Tax Lihgt DAX: Программирование 43 27.05.2022 11:05
Оптимизация запроса - ranges kashperuk DAX: Программирование 13 31.01.2011 20:19
Оптимизация кода с LedgerTrans Poleax DAX: Программирование 18 07.11.2008 12:32
Оптимизация производственного планирования Fisher DAX: Прочие вопросы 19 16.04.2005 11:57
Оптимизация запросов Mystery DAX: Программирование 3 25.02.2004 13:12

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

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

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