|
29.07.2009, 09:38 | #1 |
Участник
|
Как обойти ограничение на количество полей группировки в DS отчета?
Ахарта 3.0
Ругается, что полей более 16 и что больше нельзя. Последний раз редактировалось Dronas; 29.07.2009 в 09:47. |
|
29.07.2009, 10:34 | #2 |
Участник
|
а смысл?
|
|
29.07.2009, 10:44 | #3 |
Axapta
|
Цитата:
Сообщение от RVS
"Прошу обратить внимание, что существуют ограничения на количество финансовых аналитик в Microsoft Axapta.
Максимальное количество полей в индексе в MS SQL равно 16, в Oracle Database – 18. Соответственно, это налагает существенные ограничения на количество финансовых аналитик. (с) MSBS-2004 |
|
29.07.2009, 10:50 | #4 |
Участник
|
Похоже, что да.
|
|
29.07.2009, 10:52 | #5 |
Axapta
|
Тогда ой. Обойти - или осознать, что ни одному пользователю сортировка аж по 16 полям наверняка не нужна или перейти на другую СУБД.
|
|
29.07.2009, 22:14 | #6 |
MCITP
|
Цитата:
А во вторых, стесняюсь спросить, а какое отношение кол-во столбцов в индексе имеет к кол-ву полей в order by? Не скажу за Сиквел, но Оракл никаких подобных ограничений не накладывает - думаю это скорее какой-то внутренний лимит Аксапты..
__________________
Zhirenkov Vitaly |
|
29.07.2009, 22:40 | #7 |
MCITP
|
DAX 2009 + MS SQL:
X++: static void Job3(Args _args) { Query q = New Query(); QueryBuildDataSource qbds; QueryRun qr; SysDictTable dictTable = new SysDictTable(tableNum(InventTable)); int i; ; qbds = q.addDataSource(tableNum(InventTable)); for (i=1; i<=100; i++) { qbds.addSortField(dictTable.fieldCnt2Id(i)); } info(qbds.toString()); qr = New QueryRun(q); while (qr.next()) { info("In"); break; } } PHP код:
__________________
Zhirenkov Vitaly |
|
29.07.2009, 23:40 | #8 |
Axapta
|
Я с Ораклом не работал ни секунды и просто привел первую найденную тут цитату. Если для Оракла 32, я за него рад. Спасибо. Буду знать.
Речь про Report, а не про запрос в коде. |
|
29.07.2009, 23:56 | #9 |
MCITP
|
Цитата:
а, если серьёзно, то просто в приведённой вами первой ссылке есть фраза: Цитата:
Максимальное количество полей в индексе в MS SQL равно 16, в Oracle Database – 18. Соответственно, это налагает существенные ограничения на количество финансовых аналитик.
Да без разницы, вопрос остаётся в силе - при чём тут индексы?
__________________
Zhirenkov Vitaly |
|
30.07.2009, 00:11 | #10 |
Axapta
|
Сложно сказать сейчас. Странным образом совпадает число 16. Ну и сообщение Аксапта какой-то похожее пишет, насколько я помню. Аксапты под рукой нет, на подобное сообщение натыкался пару лет назад. Может и не при чем. От Аксапты можно ожидать многого.
А может пять лет назад было не 32? Нет? Про Аналитики: http://forum.mazzy.ru/index.php?showtopic=7902 |
|
30.07.2009, 10:12 | #11 |
MCITP
|
Цитата:
Сообщение от oip
Сложно сказать сейчас. Странным образом совпадает число 16. Ну и сообщение Аксапта какой-то похожее пишет, насколько я помню. Аксапты под рукой нет, на подобное сообщение натыкался пару лет назад. Может и не при чем. От Аксапты можно ожидать многого.
А может пять лет назад было не 32? Нет? Про Аналитики: http://forum.mazzy.ru/index.php?showtopic=7902 Вот я и говорю, что это скорее Аксаптовский какой-то затык, а перевесить пытаются на кого-то ещё. Ссылка с форума Маззи уже конечно более похожа на правду, т.к. действительно есть ограничение на размер одной записи в индексе Оракл - не должна превышать половину размера блока. Но это всё отступление от исходной темы. При сортировке индекс же не создаётся... Самому интересно, просто, из кода всё работает и на сиквеле и на оракле - проверил. Dronas, а можно увидеть конкретное сообщение, которое вы получаете?
__________________
Zhirenkov Vitaly |
|
30.07.2009, 10:19 | #12 |
MCITP
|
Ещё кстати, топикстартер как то странно вопрос задал:
тема называется Как обойти ограничение на количество полей сортировки в DS отчета? а ниже: Как обойти ограничение на количество полей группировки в DS отчета? Прогнал указанный выше джоб с группировками - тоже никаких проблем... Если говорить про Оракл, то с группировками есть другое ограничение: Цитата:
GROUP BY
clause Maximum length The GROUP BY expression and all of the nondistinct aggregate functions (for example, SUM, AVG) must fit within a single database block. На сиквеле 1.5-2 сотни тоже нормально отрабатывают - проверял.
__________________
Zhirenkov Vitaly |
|