当我执行T-SQL查询时,它会在sql 2005上执行15秒。
SSRS工作正常,直到昨天。我不得不在30分钟后崩溃。
我对SSRS中的任何内容都没有做任何改动。
有什么想法吗?我从哪里开始寻找?
答案 0 :(得分:2)
在SSIS中开始查询,然后查看Activity Monitor of Management Studio。查看查询当前是否被阻止,在这种情况下,阻止它被阻止。
或者你可以使用sys.dm_exec_requests并检查相同的东西,没有用户界面妨碍。查看从SSIS执行查询的会话,检查它是blocking_session_id
,wait_type
,wait_time
和wait_resource
列。如果您发现查询被阻止,则SSIS可能没有错误,并且您的环境中的某些内容阻止了查询执行。另一方面,如果查询正在取得进展(wait_resource
更改),那么它只是执行缓慢而且是时候检查其执行计划。
答案 1 :(得分:0)
您是否尝试过查询存储过程以查看是否有帮助?这样就可以缓存执行计划。
更新:您还可以将查询设为视图以实现相同的效果。
此外,SQL事件探查器可以帮助您确定正在执行的内容。这将允许您查看SQL是否是问题的原因,或者是Reporting Services呈现报告(即:不提取数据)
答案 2 :(得分:0)
有许多特定于连接的内容可以极大地改变性能 - 例如活跃的SET
options。
特别是,如果你有一个计算+持久(可能是索引)的列,其中一些可能会造成严重破坏。如果设置与列的创建方式匹配,则可以使用存储的值;否则,它必须每行重新计算。如果列是来自xml的提升列,则这尤其昂贵。
是否适用?
答案 3 :(得分:0)
这样的任何性能问题的第一个调用端口是获取执行计划。您可以通过使用ShowPlan Xml事件运行SQL事件探查器跟踪来获得此功能,或者如果这不可能(您可能不应该在加载的生产服务器上执行此操作),您可以从DMV中提取正在使用的缓存执行计划
从跟踪中获取计划是可取的,因为该计划将包括有关不同节点执行时间的统计信息。 (跟踪不会削弱您的服务器或任何东西,但它会产生一些性能影响)
答案 4 :(得分:0)
您确定问题是您的查询吗?可能存在SQL Server问题。不要忘记ReportServer和ReportServerTempDB数据库。也许他们需要一些维护。