commentBlock = $("#comment_post_23438").find('.comment-blocks'); commentBlock.find('.loading').hide(); commentBlock.find('.see-all-comments').hide(); commentBlock.html("
<\/a>
\"it_user110322<\/a>
it_user110322<\/a>IT Administrator<\/span><\/div>
<\/span>Vendor<\/span><\/div>
<\/i><\/div>
<\/i>Report as inappropriate<\/a><\/div><\/div><\/div>

I found Microsoft BI stack to be far better and it\'s \"free\" since it comes along with sql server. Since it is free people usually do not care much about its advantages but more loud about its disadvantages. SSRS is one of my favorite tools, it provide flexibility and good web support and strong AD integration for security. SSRS should not be running in the production server instance as it will kill your performance. Second, make sure it runs in a scale out manner (more than one server) based on total load. Third, change the memory setting in your SSRS configuration so that it can utilize more memory in the server rather than default, it will cut down the rendering. Fourth, never run big reports on the production server, find an alternative solution, if that\'s not possible then use resource governor so that your production database will not get the performance hit. Check query response time and actual query plan for long running reports match up with dba\'s performance baseline for that day.<\/p><\/div>

<\/i>Like<\/span>(0<\/span>)<\/a><\/i>Reply<\/span><\/a><\/div>
<\/div><\/div>
<\/a>
\"it_user1068<\/a>
it_user1068<\/a>Tech Support Staff at a tech company with 51-200 employees<\/span><\/div>
<\/span>Vendor<\/span><\/div>
<\/i><\/div>
<\/i>Report as inappropriate<\/a><\/div><\/div><\/div>

Microsoft BI provides excellent performance and affordable BI solutions to all potential businesses that need top notch BI tools. Moreover, it can easily be integrated with existing platforms or infrastructure in the company or business seeking the service.<\/p><\/div>

<\/i>Like<\/span>(0<\/span>)<\/a><\/i>Reply<\/span><\/a><\/div>
<\/div><\/div>
<\/a>
\"it_user4014<\/a>
it_user4014<\/a>Developer at a tech consulting company with 51-200 employees<\/span><\/div>
<\/span>Consultant<\/span><\/div>
<\/i><\/div>
<\/i>Report as inappropriate<\/a><\/div><\/div><\/div>

HI Melissa !<\/p>\n\n

I am already aware of the Report query timeout setting, but still you might agree with me sometimes due to heavy load on server some Reports that work perfectly fine, took longer time to render. So as a developer you don\'t want to put very short time out limit on each & every Report, also you might never know when some of the Reports start slowing down only for just 5 - 10 mins. and then came back to normal. I know SSRS has execution Log table called, ExecutionLog, ExecutionLog2 & ExectuionLog3, if we analyze these tables we will identify the Reports that are taking much longer than a usual render time. We can then set the timeout settings for these reports. <\/p>\n\n

I have been in database optimization & SSRS report optimization where i see cases where one Report is running perfectly for one environment while it might take longer in other environment with totally similar configurations. The culprit most of the time is query optimizer where on one server its able to identify the plan perfectly while on other server it took long enough to identify the plan or not choose the best optimal plan. For such scenarios it’s hard for a developer to basically put timeout settings for Reports to say like 5 min or 10 min. if the normal render time of Report is like 15 min. Let\'s suppose if we put the query time out settings to 15 min. for that particular report, still user have to wait for 15 min. before they knew that due to some issue their Report is not going to render. I have seen Financial Reports which have 100 of pages with complex grouping that will take around 20 or even 30 mins. to render completely on the browser. We are talking about distributed environment here where your database is on one server and multiple facilities can have access to this data from remote locations depending upon their security setting defined in your Database Model.<\/p>\n\n

So my point is, SSRS should be smart enough to know that if report contains billions of rows that are not going to render on a browser, it should stop the report for being in running mode for 15 - 20 mins. and then giving an error prompt, it should stopped the report before making an call to the database. Ideally it should check if the COUNT(*) of rows is greater than this much it can\'t handle these much rows, then no call made to database for whole report.<\/p>\n\n

Regards,\n
Hasham Niaz<\/p><\/div>