|
![]() |
#1 |
Участник
|
Никак.
Используйте while select. Он быстрее чем QueryRun.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. |
|
![]() |
#2 |
Участник
|
Спасибо, за оперативный ответ.
Жаль, что нет такого функционала. |
|
![]() |
#3 |
Участник
|
НЗ.
Можно через ODBC, ADO, но представлете что будет если в аксе начать заменять while select на доступ к базе миную аксу. Бардак будет. ![]()
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. |
|
![]() |
#4 |
Участник
|
|
|
![]() |
#5 |
Участник
|
Можно
X++: xRefNames xRefNames; int start; int end; ; start = timenow(); while select xRefNames { } end = timenow(); info("while " + time2str(end-start,1,1)); X++: xRefNames xRefNames; int start; int end; QueryRun queryRun; query query; ; start = timenow(); query = new Query(); query.addDataSource(tablenum(xRefNames)); queryRun = new QueryRun(query); while (queryRun.next()) { xRefNames = queryRun.get(TableNum(xRefNames)); } end = timenow(); info("queryRun " + time2str(end-start,1,1));
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. |
|
|
За это сообщение автора поблагодарили: _scorp_ (3). |
![]() |
#6 |
Участник
|
Тестировал в AX 2009. Запускал job 2 раза. У меня получился примерно тот же порядок - while select быстрее queryRun на 50%...
X++: static void JobQR(Args _args) { LedgerTrans ledgerTrans; AccountNum accountNum; int start; int end; void queryWhileSelect() { while select ledgerTrans { accountNum = ledgerTrans.AccountNum; } } void queryQueryRun() { Query q; QueryRun qr; LedgerTrans ledgerTransLocal; ; q = new Query(); q.addDataSource(tablenum(LedgerTrans)); qr = new QueryRun(q); while (qr.next()) { ledgerTransLocal = qr.get(tablenum(LedgerTrans)); accountNum = ledgerTransLocal.AccountNum; } } ; start = timenow(); queryWhileSelect(); end = timenow(); info("while " + time2str(end-start,1,1)); start = timenow(); queryQueryRun(); end = timenow(); info("queryRun " + time2str(end-start,1,1)); } Последний раз редактировалось _scorp_; 20.11.2009 в 09:38. |
|
![]() |
#7 |
Участник
|
A сравнивали с
X++: while select * from Table {} X++: while select Table {} Ага увидел. Попробуйте со звёздочкой для, чистоты эксперимента. |
|
![]() |
#8 |
Участник
|
У меня разницы нет. Хотя звёздочку в таких случаях никогда не пишу.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. |
|
![]() |
#9 |
Участник
|
Сдаётся мне, что пробовать нужно на одних и тех же таблицах. Попробовал на LedgerTrans - разница появилась существенная.
|
|
|
![]() |
||||
Тема | Ответов | |||
Dynamics AX Geek: Using query() | 0 | |||
palleagermark: Sample union query from AX 2009 | 0 | |||
Dynamics AX Geek: Using query() | 0 | |||
Помогите новичку в создании Query | 2 | |||
Помогите с query | 23 |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|