There are many timeout settings.
You can set the timeout on the individual dataset if you think that the dataset is timing out. Open the dataset properties in Visual Studio to set this. You can also adjust this in RSReportServer.config if you want to set it server wide:
<Add Key="DatabaseQueryTimeout" Value="0"/> <!--None-->
You can adjust the report execution timeout for individual reports from the Report Properties dialog using the action menu from your SharePoint report list.
For web server timeouts, in the web.config
files in \Program Files\Microsoft SQL Server\MSSQL.X\Reporting Services\ReportManager
and \Program Files\Microsoft SQL Server\MSSQL.X\Reporting Services\ReportServer
you could adjust the sessionState
timeout (for ReportManager web.config) and the ExecutionTimeout
in both files (Restart IIS after adjusting these by doing an IISRESET
)
<httpRuntime executionTimeout = "36000" />
However, it is unlikely that you have SQL queries that go for longer than 10 minutes or session timeouts. Try executing the SQL queries from your report in Sql Server Management Studio and see how long they go for; I'll bet they will go for seconds, not minutes. If they go for minutes then investigate adding an index or look at the execution plan to see if you can optimise the query to stop doing full table scans.
So the problem isn't likely to be fixed by increasing the dataset or server timeout settings, you have a different problem and the most likely candidate for your performance issue is parameter sniffing. What is happening is that Sql Server is trying to optimise your query and completely messing it up and causing horrible performance degradation and timeouts. We need to fix this, not increase the timeout limit.
Fortunately this is easy to solve. Try the techniques discussed in my other answers regarding using local variables or text SQL expressions to avoid parameter sniffing issues or try adding OPTION (RECOMPILE)
to the end of your SQL query.