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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.02.2012, 11:26   #1  
AP-1055D is offline
AP-1055D
Участник
 
351 / 92 (4) ++++
Регистрация: 01.06.2011
Увеличить скорость отчётов
Добрый день,

Коллеги, я работаю в продуктовом ретейле. В нашей компании одними из самых «тяжёлых» отчётов являются отчёты по продажам в разрезе магазинов и номенклатур. Построение отчёта может занимать от часа до дней. В настоящее время существует потребность в увеличении скорости работы отчётов. Кроме того, хотелось бы получить интерактивные отчёты. Например, чтобы пользователь мог самостоятельно определять положение колонок в отчёте, делать группировки, создавать сводные таблицы.
По сути, проблема состоит из двух: как повысить скорость работы отчётов и как сделать интерактивные отчёты?
Для интерактивных отчётов наиболее лучшим средством было бы использование Cognos PowerPlay.

Какие я вижу способы решения этих проблем:
1. В Microsoft Dynamics AX можно использовать компонент PivotTable для сводных таблиц. Использование этого компонента позволит сделать отчёты интерактивными, но не увеличит скорость построения отчёта.
2. Перенести логику расчёта отчётов в SSRS (Reporting Services). Я думаю, что это увеличит скорость работы, но отчёты не будут интерактивными.
3. Смотреть в сторону PowerPivot для Excel 2010 или Sharepoint 2010.
4. В SQL Server 2012 появился механизм отчётов Power View. Я пробовал этот компонент и думаю, что он был бы наиболее подходящим.
5. Построить хранилище данных, куда агрегировать данные. Я думаю, что использование хранилища данных повысит скорость работы. К сожалению, с хранилищами данных опыта работы нет.

Объём база данных составляет около 600 Гб, количество строк в основных таблицах 67 и 50 миллионов. СУБД Microsoft SQL Serer 2005.

Хотелось бы узнать, были ли у кого-нибудь похожие задачи, и каким образом вы пытались их решить?
Данная тема также опубликована на сайте SQL.ru http://www.sql.ru/forum/actualthread...d=922030&pg=-1.
Старый 28.02.2012, 11:35   #2  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Я бы такой отчет вынес в OLAP. Там пользователь может и разрезы сам настраивать и столбцы и прочее.

P.S. На том же ресурсе где вы так же создали тему (sql.ru), думаю, не составит труда найти информацию о технологии обработки данных OLAP.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 28.02.2012, 11:42   #3  
AP-1055D is offline
AP-1055D
Участник
 
351 / 92 (4) ++++
Регистрация: 01.06.2011
Артём,

Не могли бы вы пояснить, пожалуйста, с помощью какого клиента к OLAP можно это делать?
Старый 28.02.2012, 11:46   #4  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
У нас OLAP кубы.
База еще больше.
Все довольны.
Старый 28.02.2012, 11:49   #5  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от AP-1055D Посмотреть сообщение
Артём,

Не могли бы вы пояснить, пожалуйста, с помощью какого клиента к OLAP можно это делать?
про саму технологию работы с OLAP можно почитать ТУТ

К OLAP кубам можно подключиться, например с помощью Excel

З.Ы. а вообще если погуглить то можно много найти информации на эту тему
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 28.02.2012, 11:50   #6  
AP-1055D is offline
AP-1055D
Участник
 
351 / 92 (4) ++++
Регистрация: 01.06.2011
Logger,

Вы просматриваете OLAP-кубы в самой AX или используете какой-то клиент для этого?
Старый 28.02.2012, 11:52   #7  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от AP-1055D Посмотреть сообщение
Logger,

Вы просматриваете OLAP-кубы в самой AX или используете какой-то клиент для этого?
В качестве клиента используется Excel со сводными табличками.
Старый 28.02.2012, 11:54   #8  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от AP-1055D Посмотреть сообщение
Logger,

Вы просматриваете OLAP-кубы в самой AX или используете какой-то клиент для этого?
Работать с кубами OLAP можно и из аксапты (читатйе Справку пользователя, там про это написано).
Но лично в моем опыте использовался Excel.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 28.02.2012, 12:04   #9  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от AP-1055D Посмотреть сообщение
Какие я вижу способы решения этих проблем:
1. В Microsoft Dynamics AX можно использовать компонент PivotTable для сводных таблиц. Использование этого компонента позволит сделать отчёты интерактивными, но не увеличит скорость построения отчёта.
2. Перенести логику расчёта отчётов в SSRS (Reporting Services). Я думаю, что это увеличит скорость работы, но отчёты не будут интерактивными.
3. Смотреть в сторону PowerPivot для Excel 2010 или Sharepoint 2010.
4. В SQL Server 2012 появился механизм отчётов Power View. Я пробовал этот компонент и думаю, что он был бы наиболее подходящим.
5. Построить хранилище данных, куда агрегировать данные. Я думаю, что использование хранилища данных повысит скорость работы. К сожалению, с хранилищами данных опыта работы нет.
1, 2, 3, 4 - это всего лишь разные инструменты для получения представления. инструменты по разному выглядят, но суть одна и та же - выборка первичных данных и расчет показателей отчета.

5 - это совершенно другой принцип.

грубо говоря, принципиально ускорение можно получить только за счет хранения промежуточных итогов. чем больше промеждуточных итогов, тем быстрее можно получить отчеты.

НО:
а) промежуточные итоги занимают дополнительное место на диске
б) промежуточные итгги требуют значительного времени на обновление.

хранилище - это и есть промежуточные итоги
в хранилище вы указываете по каким данным и в каких возможных разрезах надо хранить промежуточные итоги
__________________
полезное на axForum, github, vk, coub.
Старый 28.02.2012, 13:04   #10  
Kabardian is offline
Kabardian
Талантливый разгвоздяй
Аватар для Kabardian
 
424 / 338 (12) ++++++
Регистрация: 14.12.2008
Адрес: Москва
Записей в блоге: 14
Цитата:
Сообщение от AP-1055D Посмотреть сообщение
Построение отчёта может занимать от часа до дней. В настоящее время существует потребность в увеличении скорости работы отчётов.
Проблема известная, сталкивался. Вы запускаете сложные по методике формирования отчеты в транзакционной базе данных. Сложность отчетов заключается в том, что конкретные показатели отчета извлекаются из разных источников данных (таблиц) и над ними выполняются какие-то расчеты и такие расчеты выполняются много-много раз.

Подобные отчеты в большей степени нагружают АОСы, в меньшей - СУБД. Если у вас много таких отчетов, и они запускаются достаточно часто, и в системе много пользователей, то скоро у вас кроме проблем с отчетностью могут также внезапно появиться проблемы с общей производительностью системы.

Цитата:
Сообщение от AP-1055D Посмотреть сообщение
как повысить скорость работы отчётов и как сделать интерактивные отчёты?
В транзакционной базе данных лучше формировать только простые оперативные отчеты, которые быстро формируются. Сложные отчеты лучше вынести в OLAP, как вам уже посоветовали.

По мне, так если отчет в Аксапте формируется дольше 10 минут — это уже ненормально и нужно либо его оптизировать, либо переносить в OLAP.
За это сообщение автора поблагодарили: mazzy (2).
Старый 28.02.2012, 13:42   #11  
AP-1055D is offline
AP-1055D
Участник
 
351 / 92 (4) ++++
Регистрация: 01.06.2011
Спасибо всем за ответы. Хотелось бы ещё узнать мнение про хранилище данных. Кто-нибудь пробовал строить его для отчётов? Как вы думаете, для какого объёма данных имеет смысл прибегать к хранилищу? И, кстати, что вы думаете про PowerPivot, Power View?
Старый 28.02.2012, 13:43   #12  
AP-1055D is offline
AP-1055D
Участник
 
351 / 92 (4) ++++
Регистрация: 01.06.2011
Mazzy,

Спасибо, я немного неправильно написал, объединив средства для просмотра и хранилище. Но, согласитесь, с помощью SSRS отчёты строятся значительно быстрее внутренних отчётов AX?
Старый 28.02.2012, 14:04   #13  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от AP-1055D Посмотреть сообщение
Спасибо всем за ответы. Хотелось бы ещё узнать мнение про хранилище данных. Кто-нибудь пробовал строить его для отчётов? Как вы думаете, для какого объёма данных имеет смысл прибегать к хранилищу? И, кстати, что вы думаете про PowerPivot, Power View?
Дело не в объеме а во времени исполнения отчетов.
Так как мощное железо позволит прожевать даже неоптимальные запросы.
А критерий вы сами для себя определяете.
Старый 28.02.2012, 14:56   #14  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от AP-1055D Посмотреть сообщение
Но, согласитесь, с помощью SSRS отчёты строятся значительно быстрее внутренних отчётов AX?
Не соглашусь

да, ssrs лучше заоптимизирован, нежели внутренний генератор отчетов.
да, ssrs во многих местах не делает того, что делает внутренний генератор (не вызывает метод postLoad, например. или для ax4, ax2009 не накладывает RLS-ограничения). и за счет этого работает быстрее.

поэтому разница есть, но не существенная. на проценты, но не в разы.

но, в ssrs сложно вызывать аксаптовские УЖЕ готовые классы и многое приходится программировать заново вместо того, чтобы тупо вызывать метода класса. Если же из ssrs коннектиться к аксапте и выполнять методы классов, то выигрыш в скорости будет очень спорным.

в общем, я хотел сказать, что ssrs - это те же самые яйца, только в профиль.
ssrs - это та же самая выборка оперативных данных с дополнительными вычислениями, что и во внутреннем генераторе.

принципиально ускорить можно только за счет промежуточных итогов. а это - хранилище (OLAP).
но тут надо понимать, что хранилище также обладает врожденными недостатками (главный - неоперативность данных).
так уж устроен этот мир. приходится выбирать
__________________
полезное на axForum, github, vk, coub.
Старый 28.02.2012, 15:53   #15  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Цитата:
Сообщение от mazzy Посмотреть сообщение
для ax4, ax2009 не накладывает RLS-ограничения
Да, это самый существенный недостаток.
Цитата:
Сообщение от mazzy Посмотреть сообщение
но тут надо понимать, что хранилище также обладает врожденными недостатками (главный - неоперативность данных).
А вот тут не согласен. DWH - это вообще отдельная тема. Можно не просто OLAP делать, а OLTP. Вот тебе и он-лайн.

Вопрос в том, для чего это нужно. И какие отчеты нужны. Можно и отдельными решениями строить отчеты из DWH - хоть Cognos, хоть Qlikview, да что душе угодно. Но опять - вопрос с доступом к данным и RLS.

С Уважением,
Георгий
Старый 29.02.2012, 08:02   #16  
imir is offline
imir
Участник
 
159 / 161 (6) ++++++
Регистрация: 28.05.2010
Цитата:
Сообщение от George Nordic Посмотреть сообщение
Да, это самый существенный недостаток.

А вот тут не согласен. DWH - это вообще отдельная тема. Можно не просто OLAP делать, а OLTP. Вот тебе и он-лайн.
Думаю, имелось в виду ROLAP? звучит заманчиво, но по мануалам там ограничение на ограничении, кто-то пробовал в реале его использовать с Аксой?

Последний раз редактировалось imir; 29.02.2012 в 08:08.
Старый 29.02.2012, 11:44   #17  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
На какой платформе? Я думаю много коллег использует технологии Microsoft. Ряд партнеров использует сторонние решения, например IBM Cognos или Qlikview. Которые, кстати, могут кубы в памяти строить, с огромной скоростью.

С Уважением,
Георгий
Старый 29.02.2012, 12:36   #18  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Как правило, на проектах используем OLAP, просмотр - Excel или в самой Аксапте (есть компонент из Office, есть самописный).

По актуальности - как уже писали коллеги выше есть разные варианты реализации, но чтобы их обсуждать нужно смотреть конкретно ваш случай. Без привлечения специалиста по этой теме (ну или изучения документации + форумов) с наскоку задачу не решить.

Как правило, в ритейле достаточно актуальности "на вчера". Для оперативного планирования / закупок / пополнения все равно обычно не отчетами пользуются, а автоматическими / полуавтоматическими процедурами.

P.S. с чего еще можно начать - если у вас AX 4.0 / 2009, то в поставке идут стандартные кубы. Попробуйте с ними поиграться.
__________________
Ivanhoe as is..
Старый 29.02.2012, 13:31   #19  
AP-1055D is offline
AP-1055D
Участник
 
351 / 92 (4) ++++
Регистрация: 01.06.2011
Ivanhoe,

А какой компонент для просмотра есть в AX? Вы имеете в виду CCPivotTable?
Старый 29.02.2012, 13:40   #20  
AP-1055D is offline
AP-1055D
Участник
 
351 / 92 (4) ++++
Регистрация: 01.06.2011
Кстати, хотелось бы узнать какое среднее количество строк может обрабатывать компонент CCPivotTable?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Классы для генерации отчетов в Excel Eldar9x DAX: Программирование 29 10.06.2011 13:18
Альтернативные конструкторы отчетов в Axapta Jox DAX: Программирование 22 25.04.2009 22:02
EP2009. Не вижу стандартных отчетов на сервере отчетов. slava09 DAX: Администрирование 8 19.08.2008 08:03
Печать отчетов, как увеличить масштаб отчета? Hidden DAX: Прочие вопросы 8 30.12.2005 10:55
Скорость в Аксапте Алексей Контев DAX: Прочие вопросы 13 25.06.2002 14:37
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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