Performance issue with report generation after migration of SSRI

Markus Imhof 1 Reputation point
2022-03-17T15:36:55.64+00:00

Hi,

after a successful migration from SSRS from 2012 to 2016 we have the problem that the generation of reports takes too long sometimes.

The task monitor does not reflect that as there are still plenty of resources being unused.

The number of concurrent connections is set to unlimited for the server.

Let's take one call for a given report from the view "ExecutionLog3" in the ReportServer DB:

TimeEnd-TimeStart 51 seconds (which should be about the timespan between browser GET and rendered report in browser)

TimeDataRetrieval =6,5 seconds
TimeProcessing 15,0 seconds
Time rendering 0,1 seconds

So there are missing about 40 seconds!

In the Event log Windows Applications section I can find 12x a log message "Login succeeded for user 'NT AUTHORITY\SYSTEM'. Connection made using Windows authentication. [CLIENT: localhost]" from the SSRS service, for the last 20 seconds of the call. That should be about the timespan mentioned above so what did the SSRS between the browser refresh and those log messages?

Other times it takes only about those 20 seconds for the complete roundtrip but I cannot find a pattern other than that there was not traffic for some time before. In those cases I can find only 4 or 5 of those log messages mentioned, starting almost immediately with the browser refresh.
Timeprocessing is 6 seconds in those cases while DataRetrieval is at about 3 seconds
,

Such a patter occurs not only in one special report but with all of them.

I don't have any ideas what to check for and how to proceed. Can you please help?

SQL Server Reporting Services
SQL Server Reporting Services
A SQL Server technology that supports the creation, management, and delivery of both traditional, paper-oriented reports and interactive, web-based reports.
3,061 questions
SQL Server Migration Assistant
SQL Server Migration Assistant
A Microsoft tool designed to automate database migration to SQL Server from Access, DB2, MySQL, Oracle, and SAP ASE.
568 questions
0 comments No comments
{count} votes

2 answers

Sort by: Most helpful
  1. Joyzhao-MSFT 15,631 Reputation points
    2022-03-18T03:54:48.793+00:00

    Hi @Markus Imhof
    Please check the AdditionalInfo Field to see if there is memory pressure with values such as ScalabilityTime. see more : Log Fields (ExecutionLog3).
    In addition, please consider hardware and software performance issues comprehensively. Different versions of SSRS have different requirements for hardware and software. please see:SQL Server 2019: Hardware and software requirements.
    Best Regards,
    Joy


    If the answer is the right solution, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".
    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.

    0 comments No comments

  2. Markus Imhof 1 Reputation point
    2022-03-18T14:34:27.307+00:00

    OK so the time that is recorded within the performance log can be explained by now.

    Still open is this issue which I can see with developer bar at Edge browser:

    I first call

    https://myserver/ReportServer_REPOSERV/Pages/ReportViewer.aspx?%2fFactSheets%2fTechFactSheet-Site&rs%3aCommand=Render

    via GET (=browser refres) and receive text/html
    which takes a long time (10 up to 30 seconds! Rarely below 0,5 seconds) after which some resources (image etc) are loaded that are demanded from the html.

    This time is not recorded within the performance log. No "load, please wait" sign is appearing in the meantime

    After all the resources being loaded the Url
    https://myserver/ReportServer_REPOSERV/Pages/ReportViewer.aspx?%2fFactSheets%2fTechFactSheet-Site&rs%3aCommand=Render

    is called again, this time with a POST. Now the "load data please wait" animation is appearing! And the performance log is ticking and remembering the call! Resources are loaded again and the report is rendered by the browser!

    Seems to be like a double roundtrip to the same report that is superflous?

    Why does only the POST get counted for? What did the first call (GET) and how to remove this time-costly call for it?

    Is there a configuration setting missing?

    0 comments No comments

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.