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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.01.2016, 17:41   #1  
kitty is offline
kitty
Участник
 
370 / 30 (2) +++
Регистрация: 24.05.2005
TempDB для SSRS
Есть много данных и отчет по ним.
Отчет отваливается по тайм-ауту.

В данный момент таблица, используемая DS отчета имеет тип InMemory.

1) Хочу изменить тип таблицы на TempDB, но наткнулась на статью:

https://axfactory.wordpress.com/2013...-ssrs-reports/
Действительно все так жестко кэшируется, что дынные неправильные в отчете показываются?
(+ У меня вообще вызывает большие сомнения потенциальная работоспособность описанного решения. )

2) Достаточно ли просто поменять тип таблицы на InMemory, чтобы оптимизировать выполнения отчета на большом объеме данных или нужно еще что-то менять?
(об оптимизации самих выброк тут не упоминаю)

3) В инете полно ссылок на то, как ускорить выполнение отчета в R3 с помощью класса SrsReportDataProviderPreProcessTempDB . У нас R2, но класс уже есть в наличии .... Стоит ли его использовать?

Поделитесь опытом. Спасибо.
Старый 08.01.2016, 19:59   #2  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Точно по таймауту?
Проблема больших данных давно решена в классом SrsReportDataProviderPreProcess (если ниего не путаю. Как раз TempDB\InMamory не канали). См. пример отчета \Classes\PurchPurchaseOrderDP, или любой другой отчет *FormLetter. Идея в использовании перманентных таблиц как временных - т.е. перед перчатью таблицы заполняются, после отображения удуляются. Вроде проблем не было.
За это сообщение автора поблагодарили: Logger (1), kitty (1).
Старый 08.01.2016, 20:50   #3  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
700 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Цитата:
Сообщение от kitty Посмотреть сообщение
3) В инете полно ссылок на то, как ускорить выполнение отчета в R3 с помощью класса SrsReportDataProviderPreProcessTempDB . У нас R2, но класс уже есть в наличии .... Стоит ли его использовать?

Поделитесь опытом. Спасибо.
Его как раз добавили в R2 для улучшения производительности обычных PreProcess.
http://blogs.msdn.com/b/axperf/archi...es-part-6.aspx

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

Старые отчеты переделывать очень легко. Достаточно поменять родителя, таблицу сделать TempDB и в начале processReport вызвать takeOwnershipOfTempTable()
За это сообщение автора поблагодарили: kitty (1), gl00mie (2).
Старый 08.01.2016, 22:01   #4  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от skuull Посмотреть сообщение
Его как раз добавили в R2 для улучшения производительности обычных PreProcess.
http://blogs.msdn.com/b/axperf/archi...es-part-6.aspx

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

Старые отчеты переделывать очень легко. Достаточно поменять родителя, таблицу сделать TempDB и в начале processReport вызвать takeOwnershipOfTempTable()
Ага, спасибо, познавательно. Т.е. новый класс выигрывает в случае, если один и тот же отчет запускают несколько пользователей одновременно. Да, тогда есть смысл юзать его.
Цитата:
This R3 feature is implemented in the kernel.
А он точно в R2 работает?
Старый 09.01.2016, 01:34   #5  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
700 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Цитата:
Сообщение от DSPIC Посмотреть сообщение
А он точно в R2 работает?
Нет Только в R3, где-то я что-то перепутал. В R2 есть SrsReportDataProviderPreProcess
Старый 09.01.2016, 04:45   #6  
kitty is offline
kitty
Участник
 
370 / 30 (2) +++
Регистрация: 24.05.2005
Цитата:
Сообщение от skuull Посмотреть сообщение
Нет Только в R3, где-то я что-то перепутал. В R2 есть SrsReportDataProviderPreProcess
точно напутали? сам класс-то SrsReportDataProviderPreProcessTempDB как раз есть и в R2 ...
Старый 09.01.2016, 08:41   #7  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
700 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Цитата:
Сообщение от kitty Посмотреть сообщение
точно напутали? сам класс-то SrsReportDataProviderPreProcessTempDB как раз есть и в R2 ...
Нет Просто нет под рукой R2 чтобы проверить. Но судя по тому что есть KB 2858835
для R2 для этого класса то значит R2 !
Старый 11.01.2016, 12:58   #8  
kitty is offline
kitty
Участник
 
370 / 30 (2) +++
Регистрация: 24.05.2005
Есть недопонимание
1) В R2 есть метод takeOwnershipOfTempTable, но по перекрестным ссылкам не вижу, чтобы его хоть один наследник вызывал ...
2) В примере с TaxListDP , который они приводят по ссылке, все еще зачем-то используется
X++:
 taxListTaxTransTmp.setConnection(this.parmUserConnection());
. Хотя, в других классах-наследниках от SrsReportDataProviderPreProcessTempDB setConnection не вызывается. Таблица TaxListTaxTransTmp при этом уже TempDB. Забыли строку кода удалить, что ли?
3) Все эти временные TempDB таблицы , используемые в отчетах,зачем-то еще имеют свойство saveDataPerCompany = no. Зачем? На случай, что один и тот же пользователь в одной сессии с разными компаниями работает и один и тот же отчет вызывает?
(по приведенной ссылке не указано, что нужно это делать. Может, это в R3 просто уже не нужно, тк ядро правильно чистит таблицу)

Последний раз редактировалось kitty; 11.01.2016 в 13:20.
Старый 11.01.2016, 17:42   #9  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от kitty Посмотреть сообщение
Есть недопонимание
1) В R2 есть метод takeOwnershipOfTempTable, но по перекрестным ссылкам не вижу, чтобы его хоть один наследник вызывал ...
2) В примере с TaxListDP , который они приводят по ссылке, все еще зачем-то используется
X++:
 taxListTaxTransTmp.setConnection(this.parmUserConnection());
. Хотя, в других классах-наследниках от SrsReportDataProviderPreProcessTempDB setConnection не вызывается. Таблица TaxListTaxTransTmp при этом уже TempDB. Забыли строку кода удалить, что ли?
3) Все эти временные TempDB таблицы , используемые в отчетах,зачем-то еще имеют свойство saveDataPerCompany = no. Зачем? На случай, что один и тот же пользователь в одной сессии с разными компаниями работает и один и тот же отчет вызывает?
(по приведенной ссылке не указано, что нужно это делать. Может, это в R3 просто уже не нужно, тк ядро правильно чистит таблицу)
Видимо настал тот момент, когда стоит проверить на практики и рассказать. Вероятно, фичу начали реализовывать в R2, но не успели завершить, закончили в R3. Отсюда, какие-то куски есть, но в R2 они могут не работать.
Старый 10.03.2016, 14:48   #10  
Denicce is offline
Denicce
Участник
 
62 / 54 (2) ++++
Регистрация: 22.03.2005
Адрес: Москва
Добрый день!
Есть опыт использования класса SrsReportDataProviderPreProcessTempDB в отчетах, которые запускаются на Портале?

Создан Web control, который хостит ССРС через <dynamics:AxReportViewer runat="server" ID="ReportId" MenuItemName="ReportMenuItem" />.

Отчет в Ах работает корректно, препроцессинг отрабатывает. Но на портале работает только в том случае, если DP класс является наследником SRSReportDataProviderBase; если наследник от SrsReportDataProviderPreProcessTempDB, то выполнение отчета на портале зависает и отваливается по таймауту. Данных на выходе немного.

Пытался найти штатные отчеты, которые хостятся аналогично и используют этот класс - ни один не нашелся.

Гугл ответов не дал.

Изначальная идея заключалась не столько в скорости, сколько в возможности управлять процессом сборки данных, т.е. использовать при необходимости инфо и исключения. Если DP наследник от Base, то ни инфо, ни исключения не работают (инфо тупо игнорируются, исключения вешают отчет до таймаута). При препроцессинге все ок, кроме Портала.
За это сообщение автора поблагодарили: Logger (1).
Старый 01.12.2020, 16:56   #11  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
up-ну тему.

Есть ли способы вывести в ролевой центр Preprocessed отчет?

Тут пишут что невозможно.
https://community.dynamics.com/ax/f/...-while-opening
Старый 01.12.2020, 16:57   #12  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
По поводу таймаутов попалась хорошая ссылка
https://docs.microsoft.com/en-us/arc...ssion-timeouts
пусть тут полежит.
Теги
srsreportdataproviderpreprocesstempdb, ssrs

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
kamalblogs: SSRS Tip: Using invisible parameters in contracts – Dynamics AX 2012 Blog bot DAX Blogs 2 30.09.2013 17:50
kamalblogs: SSRS Tip: Prevent report execution through controller – Dynamics Ax 2012 Blog bot DAX Blogs 0 25.09.2013 14:11
kamalblogs: SSRS Tip: Printing Row headers in every page – Dynamics Ax 2012 Blog bot DAX Blogs 0 23.09.2013 16:12
kamalblogs: SSRS Tip: Using labels for dynamic texts in SSRS reports – Dynamics Ax 2012 Blog bot DAX Blogs 0 16.09.2013 12:11
gatesasbait: Dynamics AX 2009 SSRS and SSAS Integration Tips Blog bot DAX Blogs 3 09.07.2009 13:07

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

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

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