繁体   English   中英

SSRS 超时已过期。 操作完成前超时时间已过或服务器未响应

[英]SSRS Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding

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

我已经在数据源属性>编辑>测试连接中测试了数据库连接,它工作正常。

我已将以下区域的超时时间增加到 100:

  1. 数据源的连接字符串,即 - Connect Timeout=100
  2. 工具>选项>数据库工具>查询和视图设计器。 取消长时间运行的查询设置为 100。
  3. 工具>选项>数据库工具>表和数据库设计器>选中“覆盖表设计器更新的连接字符串超时值”。 事务超时后设置为 100

SPROC 在 SQL 数据库中运行良好。 大约需要 55 秒。

还有其他想法吗? 谢谢。

更新:我现在无法使用 SPROC 添加任何数据集。 甚至认为 SPROC 在 SQL 中都可以正常工作!!!!!!

如果您使用的是报表生成器,您也可以在数据集中增加超时。

报表生成器中的数据集超时设置

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

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

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

现在已经添加了新列,然后取消注释 sp 中的 quires。

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

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

我建议使用 NO LOCK 来查看是否可以解决您的问题。 如果是这样,那么您的 proc 正在争夺数据并相互阻塞...可能处于无限循环中。 使用 NO LOCK 不是解决方法。 阅读它的作用并自行判断。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM