Tricks to Improve SSRS Report Performance

Attaching more hardware or adding more resources to the environment is not the answer to every performance problem or bottleneck , writing efficient code in the first place is what goes the long way .

In this post we will discuss how we can write efficient SSRS reports to overcome delayed loading , using the discussed approaches we can also optimise existing reports that are performing slow .

I would just be listing the bullets without any additional details , so essentially this is a summary , otherwise each of the bullet could be expanded to a whole post of its own.

  • Reducing the size of the images in the reports (Any image compressor tool could be used)
  • Using set-based Operations instead of line based operations(This is not always possible and essentially devising the logic that works with the set based operations is the actual trick otherwise we can use a hybrid approach – more on this in another blog)Examples :- insert_recordset , update_recordSet
  • Dynamic Set-based insert operation (available Starting from AX 2012 R3) Examples:-Query::insert_recordset
  • Using SrsReportDataProviderPreProcessTempDB class(for large datasets)
  • Avoid Using Display Methods for Query-based Reports(Use Views instead)
  • Remove duplicated DB calls (calling same code from multiple methods per line )
  • Refactor Parent Level Operations ( calling header level information on each line , there are multiple ways to mitigate this)
  • Use fewer instances of Helper Class Objects(essentially instantiate one instance for the entire process and use it where required.
  • Skip postLoad Kernel Call (Post Load also a potential performance killer with in data entities context).

Leave a Reply