SSRS报告DataRetrieval时间过夜增加60秒

时间:2017-10-25 13:49:08

标签: sql-server reporting-services sql-server-2014 dynamics-crm-2015 dynamics-365

我有一份SSRS报告,其<button onclick="playVid()" type="button">Play Video</button>&nbsp;&nbsp;&nbsp; <button onclick="pauseVid()" type="button">Pause Video</button>&nbsp;&nbsp;&nbsp; <button onclick="location.href = 'http://ivanflo.sytes.net/cms1/index.php? page=bipolair';" id="Button01" class="float-left submit-button" >Skip Video</button></br> <video id="myVideo01" width="100%" > <source src="http://hetmosterdzaadje.be/ Very%20angry%20man%20Destroying%20his%20car%20completely.mp4" type="video/mp4"> </video> <script> var vid = document.getElementById("myVideo01"); function playVid() { vid.play(); } function pauseVid() { vid.pause(); } </script> (根据TimeDataRetrieval数据库中的ExecutionLog3表)一夜之间增加了60秒,我无法弄清楚原因。

该报告有两个参数,并包含一个数据集,该数据集将其中一个报告参数传递给SQL存储过程。我可以在SSMS中独立运行存储过程,并在几秒钟内完成,与之前的报告性能保持一致。

我已经在线阅读了许多关于参数嗅探如何影响SQL从SSRS报告调用时为存储过程构建的执行计划与直接运行时的线程和文章,但我尝试添加内部变量到存储过程,将传入的参数值分配给该变量,并在存储过程中的查询中使用该变量而不是参数,但这对问题没有任何影响。我甚至尝试将ReportingServices添加到存储过程中,但这又没有影响。

问题是在我们将Dynamics CRM 2015系统(其数据库与SSRS的这个实例相同的SQL Server - 我认识的可能是个坏主意)升级到Dynamics 365之后立即开始发生的,所以我想知道是否可以某种程度上与它有关,但我不知道如何解决这个问题,所以任何建议都是最受欢迎的!

1 个答案:

答案 0 :(得分:0)

此SP运行的表格是否会稳定增长?有时您会遇到“阈值”影响,突然行数会导致性能问题。我建议您在使用的所有表格中rebuild statistics 添加OPTION(RECOMPILE)并重新测试。

此外,当尝试在SSMS中重新创建时,必须确保您还包含所有SET选项。您应该使用分析器捕获SQL并使用它,包括之前的所有四个或五个set选项(即SET ARITHABORT)

您可能会发现您可以在SSMS中重现,在这种情况下,它肯定是一个参数嗅探问题。 (虽然重新编译通常会修复)