Warming up SSRS?

  • I have SSRS running on my warehouse server. The problem is that, when the server is left alone for a while (which is daily because I've only just begun to roll out reports into production) the first hit on the server takes probably 45 seconds. After that it responds well, until some period of non-use passes and you get another 45 second hit.

    I've read all of the articles about the settings for SSRS and how to keep it "alive," but nothing has helped. Also I've tried command-line / vbs warmup scripts. These were written for Sharepoint and do actually work when executed on my local workstation. Only problem is that when installed the scripts on the server they just plain don't work, either from direct command line or by scheduling execution through SQL Agent. I'd like to get to the point where I can have Agent just call them from the command line, at 7:00 AM daily or on regular intervals or something.

    Does anyone have a really good technique for warming up an SSRS instance in an unattended fashion?


  • Just fixed this so I thought I would share.

    The failure of the warmup script, when run from the server, was a permissions issue. I had added our "Company All" security group to the membership of the SSRS server's root Report Viewer role. I forgot that all of these user accounts are tied to real people (the group doesn't include system accounts). Also, because the script executed a .cmd file the specific feedback from the VBS call wasn't being displayed.

    The fix was to 1) explicitly add a system account to the Report Viewer (browser, basically) role at the root of the SSRS server, and 2) specify the credentials for that account when calling the VBS file.

    Below is a reference to the files I'm using to do this. Just thought someone might benefit from this (p.s. this works for SharePoint sites, too).


  • Here is simplest thing to keep SSRS in warmed up state:

    To keep SSRS, in warmed up state, save the following script in text file and save as, say SSRSWarmup.vbs (this is vbscript). And then set up a schedule in Windows to execute SSRSWarmup.vbs, every 1 hour or so, using command line "wscript C:\SSRSWarmup.vbs". You can set it up on either SSRS server or in any client PC, which has got access to SSRS report specified in URL (inside script). SSRS is always in "warmed up" state!!!


    Dim strURL, strFile

    Set webObj = CreateObject("MSXML2.ServerXMLHTTP")

    'Replace below URL with the URL of any report in the reporting server

    strURL = "http://aubbhsqlrept01/Reports/Pages/Report.aspx?ItemPath=%2fRetail%2fCustomerDetailsReport"

    webObj.Open "GET", strURL



  • hanks, that helped me, I hope it's the best way to do that.

    anyway I've scheduled a SQL agent job to run every 30 minutes.

  • Hi Toofles,

    Your link is broken. I know it is very old post. But i really need the same fix.


    I have configured the VB script in SQL Server agent job. But SSRS report link ask for Windows authentication credential to load the reports page. how do i pass credential in VB script?

    I tried update the rsreportserver.config file to update the <Reccycletime>0</Recycletime> but that is not reflecting even after restarting the SQL SSRS reporting service.

    Really hoping on VB Script could work.

    Did updated with below credential parameteres :

    Dim strURL, strFile

    Set webObj = CreateObject("MSXML2.ServerXMLHTTP")

    'Reports server URL below

    strURL = "http://servername/reports/report/Test/reportname"

    webObj.Open "GET", strURL, False, "username", "password"



    but this even didn't work. next day when i load the report it takes longer to open. And from second time it works in 3 seconds.



Viewing 5 posts - 1 through 4 (of 4 total)

You must be logged in to reply to this topic. Login to reply