简体   繁体   English

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

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

I have a reporting solution with several reports.我有一个包含多个报告的报告解决方案。 Up to now, I have been able to add a dataset based on a SPROC with no problems.到目前为止,我已经能够毫无问题地添加基于 SPROC 的数据集。 However, when I try to add the lastest dataset, and use a SPROC for its query type, when I click on Refresh Fields I get the following error: Timeout expired.但是,当我尝试添加最新的数据集并为其查询类型使用 SPROC 时,当我单击“刷新字段”时,出现以下错误:超时已过期。 The timeout period elapsed prior to completion of the operation or the server is not responding.操作完成前超时时间已过或服务器未响应。

I have tested the database connection in Data Source properties>Edit>Test Connection, and it's working fine.我已经在数据源属性>编辑>测试连接中测试了数据库连接,它工作正常。

I have increased the timeout to 100 in the following areas:我已将以下区域的超时时间增加到 100:

  1. The connection string for the datasource, which is - Connect Timeout=100数据源的连接字符串,即 - Connect Timeout=100
  2. Tools>Options>Database Tools>Query and View Designers.工具>选项>数据库工具>查询和视图设计器。 Cancel long running query is set to 100.取消长时间运行的查询设置为 100。
  3. Tools>Options>Database Tools>Table and Database Designers>Checked 'Override Connection String time-out value for table designer updates.工具>选项>数据库工具>表和数据库设计器>选中“覆盖表设计器更新的连接字符串超时值”。 Transaction time-out after is set to 100事务超时后设置为 100

The SPROC runs fine in the SQL database. SPROC 在 SQL 数据库中运行良好。 It takes about 55 seconds.大约需要 55 秒。

Any other ideas?还有其他想法吗? Thanks.谢谢。

UPDATE: I now can't add any dataset with a SPROC.更新:我现在无法使用 SPROC 添加任何数据集。 Even thought the SPROCs are all working fine in SQL!!!!!!甚至认为 SPROC 在 SQL 中都可以正常工作!!!!!!

If you are using Report Builder, you can increase timeout also in your DataSet.如果您使用的是报表生成器,您也可以在数据集中增加超时。

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

I have also face same problem for adding the newly added column in stored procedure.在存储过程中添加新添加的列时,我也遇到了同样的问题。

From the following way overcome this issue.从以下方式克服了这个问题。

Alter the stored procedure as comment all the query except that final select command.将存储过程更改为注释除最终选择命令之外的所有查询。

Now that new column has been added, then un-comment that quires in sp.现在已经添加了新列,然后取消注释 sp 中的 quires。

The thing to remember with your report is that when it is ran, it will attempt to run ALL the datasets just to make sure the are runnable, and the data they are requesting can be returned.对您的报告要记住的是,当它运行时,它会尝试运行所有数据集,以确保它们是可运行的,并且可以返回它们请求的数据。 So by running the each proc seperately you are in fact not duplicating with SSRS is trying to do...and to be honest don't bother.因此,通过单独运行每个 proc,您实际上并没有与 SSRS 重复尝试做的事情……老实说,不要打扰。

What you could try is running sp_who while the report is running, or even just manually go through the procedures to see what table they have in common.您可以尝试在报告运行时运行 sp_who,或者甚至只是手动执行这些过程以查看它们的共同表。 Since your proc takes 52 seconds to return its dataset I'm going to assume its doing some heavy lifting.由于您的 proc 需要 52 秒来返回其数据集,因此我将假设它做了一些繁重的工作。 Without the queries nobody will be able to tell what the exact problem is.没有查询,没有人能够说出确切的问题是什么。

I suggest using NO LOCK to see if that resolves your issue.我建议使用 NO LOCK 来查看是否可以解决您的问题。 If it does then your procs are fighting for data and blocking each other...possibly in a endless loop.如果是这样,那么您的 proc 正在争夺数据并相互阻塞...可能处于无限循环中。 Using NO LOCK is NOT a fix.使用 NO LOCK 不是解决方法。 Read what it does and judge for yourself however.阅读它的作用并自行判断。

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

暂无
暂无

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

相关问题 SSRS错误“超时已过期。 在操作完成之前超时时间已过,或者服务器没有响应。” - SSRS error “Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.” SQL SERVER - 超时已过期。 操作完成之前经过的超时时间或服务器没有响应 - SQL SERVER - Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding SQL Server异常:超时已过期。 操作完成之前经过的超时时间或服务器未响应 - SQL Server Exception:Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding SQL Azure 上的服务器:“执行超时已过期。操作完成前超时时间已过,或者服务器没有响应。” - SQL Server on Azure: "Execution Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is not responding." 超时时间已到。 操作完成之前经过的超时时间或服务器未响应 - Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is not responding 超时已过。 操作完成前超时时间已过或服务器未响应 - Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding 错误:超时已过期。 操作完成之前经过的超时时间或服务器未响应 - Error: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding Linq Count() 超时 - 执行超时已过期。 操作完成前超时时间已过或服务器未响应 - Linq Count() timing out -Execution Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is not responding 在sis中执行软件包会导致超时过期。 操作完成之前经过的超时时间或服务器未响应 - Execute package in ssis causes Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding 超时时间已到。 在操作完成之前超时或服务器没有响应。 在远程Windows .net上工作 - Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. working on remote windows .net
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM