Sql server T-SQL查询在SQL 2005上15秒内执行,但在SSRS中挂起(没有更改)?

Sql server T-SQL查询在SQL 2005上15秒内执行,但在SSRS中挂起(没有更改)?,sql-server,sql-server-2005,reporting-services,Sql Server,Sql Server 2005,Reporting Services,当我在SQL2005上执行T-SQL查询时,它会在15秒内执行 SSRS在昨天之前一直运转良好。30分钟后我不得不撞坏它 我在SSRS中没有做任何更改 有什么想法吗?从何处开始查找?您是否尝试将查询设置为存储过程以查看这是否有帮助?这样就可以缓存执行计划 更新:您还可以将查询设置为视图,以实现相同的效果 此外,SQL事件探查器可以帮助您确定正在执行的内容。这将允许您查看SQL是否是问题的原因,或者Reporting Services是否呈现报告(即:不获取数据)存在许多特定于连接的因素,这些因素

当我在SQL2005上执行T-SQL查询时,它会在15秒内执行

SSRS在昨天之前一直运转良好。30分钟后我不得不撞坏它

我在SSRS中没有做任何更改


有什么想法吗?从何处开始查找?

您是否尝试将查询设置为存储过程以查看这是否有帮助?这样就可以缓存执行计划

更新:您还可以将查询设置为视图,以实现相同的效果


此外,SQL事件探查器可以帮助您确定正在执行的内容。这将允许您查看SQL是否是问题的原因,或者Reporting Services是否呈现报告(即:不获取数据)

存在许多特定于连接的因素,这些因素会极大地改变性能,例如处于活动状态的连接

特别是,如果您有一个计算+持久化(并可能索引)列,其中一些列可能会造成严重破坏。如果设置与列的创建方式相匹配,则可以使用存储的值;否则,它必须每行重新计算一次。如果该列是来自xml的升级列,那么这将特别昂贵


这些都适用吗?

对于像这样的性能问题,第一个调用端口是获取执行计划。您可以通过在ShowPlan Xml事件中运行SQL Profiler跟踪来实现这一点,或者如果不可能(您可能不应该在已加载的生产服务器上执行此操作),则可以从DMV中提取正在使用的缓存执行计划


但是,最好从跟踪中获取计划,因为该计划将包含关于不同节点执行所需时间的统计信息。(跟踪不会破坏您的服务器或任何东西,但会对性能产生一些影响)

您确定问题出在您的查询上吗?可能存在SQL Server问题。不要忘记ReportServer和ReportServerTempDB数据库。也许他们需要一些维护。

在SSIS中启动您的查询,然后查看。查看查询当前是否被阻止,以及在这种情况下被阻止的内容


或者,您也可以使用并检查相同的内容,而不必使用用户界面。查看从SSIS执行查询的会话,检查其
阻塞会话id
等待类型
等待时间
等待资源
列。如果发现查询被阻止,则SSI可能没有故障,并且您的环境中有某种东西正在阻止查询执行。另一方面,如果查询正在进行(wait_资源发生更改),那么它只是执行得很慢,需要检查执行计划

没有,但是谢谢你的评论。我将确保在我的其他报告中坚持你的建议。