SSRS超时已过期。操作完成之前经过的超时时间或服务器没有响应

时间:2012-08-21 09:36:20

标签: sql-server reporting-services bids

我有一个包含多个报告的报告解决方案。到目前为止,我已经能够添加基于SPROC的数据集而没有任何问题。但是,当我尝试添加最新的数据集,并使用SPROC作为其查询类型时,当我单击刷新字段时,我收到以下错误: 超时已过期。操作完成之前经过的超时时间或服务器没有响应。

我在数据源属性>编辑>测试连接中测试了数据库连接,并且它运行正常。

我已在以下方面将超时时间增加到100:

  1. 数据源的连接字符串,即 - Connect 超时= 100
  2. 工具>选项>数据库工具>查询和查看 设计师。取消长时间运行的查询设置为100.
  3. 工具>选项>数据库工具>表和数据库设计器>已选中 '覆盖表设计器的连接字符串超时值 更新。事务超时后设置为100
  4. SPROC在SQL数据库中运行良好。大约需要55秒。

    还有其他想法吗? 感谢。

    更新:我现在无法使用SPROC添加任何数据集。甚至认为SPROC在SQL中都运行良好!!!!!!

4 个答案:

答案 0 :(得分:4)

如果您使用的是报表生成器,则还可以在DataSet中增加超时。

DataSet timeout setting in Report Builder

答案 1 :(得分:2)

您的报告要记住的事情是,当它运行时,它将尝试运行所有数据集,以确保它们是可运行的,并且可以返回它们请求的数据。因此,通过单独运行每个proc,你实际上并没有与SSRS一样重复...而且说实话,不要打扰。

您可以尝试在报告运行时运行sp_who,或者甚至只需手动完成程序以查看它们共有的表。由于你的proc需要52秒才能返回其数据集,我将假设它做了一些繁重的工作。没有查询,没有人能够说出确切的问题是什么。

我建议使用NO LOCK查看是否可以解决您的问题。如果它确实那么你的触发器正在争夺数据并相互阻挡......可能是无限循环。使用NO LOCK不是解决方法。阅读它的作用,然后自己判断。

答案 2 :(得分:1)

我在存储过程中添加新添加的列也遇到了同样的问题。

通过以下方式克服了这个问题。

将存储过程更改为注释除最终选择命令之外的所有查询。

现在已经添加了新列,然后在sp。

中取消注释

答案 3 :(得分:0)

我的解决方案是转到给定问题数据集的数据集属性,将查询粘贴到“查询”字段中,单击“刷新字段”,然后单击“确定”。