Improving SSRS Report Performance using new R3 features – Part 6

Using SrsReportDataProviderPreProcessTempDB class In Ax2012, we introduced class SrsReportDataProviderPreProcess class as the solution for long running SSRS reports that cause SSRS time out. The approach is to process data in Ax session before calling SSRS. The preprocessed data stored in a regular SQL table shared by all user sessions, only to be striped by session id….


Improving SSRS Report Performance at Line level – Part 5

Inevitably, we can’t completely get rid of all line-based data accesses or calculations. So, we discuss here a few ways to improve without change the basic report logic. Remove duplicated DB calls Most of the duplicated DB calls are hidden deep in the stack. For example, Vendor report calls DirPartyTable::ElectornicAddressType2primaryFieldId() 4 times (4 db access)…


Improving SSRS Query-based Report Performance by not Using Display Methods – Part 3

This post is about Query based reports in Ax2012. Ax2012 supports table display method in query based reports. It is convenient to use. For example, the query for VendDueReportDetail is on VendTable and looks like this in VS designer:   The table display methods above look up VendInvoiceJour and VendTrans tables to get the last…


Improving SSRS Report Performance by Applying Filters/Ranges Earlier – Part 2

We post it second because it is a low hanging fruit for better performance. One example helps explains this pattern. Here is a code excerpt from CustTransOpenPerDate report. perDate = contract.parmPerDate(); while (     {         if (queryRun.changed(tablenum(CustTable)))         {             custTable = queryRun.get(tablenum(CustTable));         }         custTrans = queryRun.get(tablenum(CustTrans));           if (custTrans.TransDate <=…


Improving SSRS Report Performance with Set-Based Operations – part 1

Introduction Ax reports were migrated to Microsoft SSRS in Ax2012, mostly in the form of Report Data Provider classes (RDP).  We want to share with our customers and ISVs, through this series of blogs, with some best practices to improve SSRS report performance.  Our goal is to improving report performance without introducing much disruptions or…