添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

随着数据库数据的不断增大,查询时间也随之增长。而客户端与数据库连接时间以及命令的执行时间都是有限的.默认为30s。
所以在查询数据的时候,程序会出现 “超时时间已到。在操作完成之前超时时间已过或服务器未响应” 异常。

经检查后发现,这是因为页面在读取数据库中的数据时耗时太长,超过了默认的30秒。所以报出了以上错误,解决该问题的方法是:
一,优化 sql语句 ,提高查询速度
二,延长sql超时的时间设置

最好的方法当然是第一种了,这才是治本的方法。但sql优化可不是一件简单的活,具体的环境有不同的方法。本章主要看一下如何通过第二种方法来解决问题。

1,首先设置sql的执行超时时间。
如果我们的sql是直接使用SqlCommand对象来执行的,那么可以设置SqlCommand的CommandTimeout属性的值。
比如:

using (SqlCommand cmd = new SqlCommand(SQLString, connection))
{undefined
cmd.CommandTimeout=180
}


这样我们就设置了cmd的超时间时间是180秒。
注意:SqlCommand.CommandTimeout属性的单位为秒,默认值是30。

如果我们的sql是利用SqlDataAdapter对象来获取数据集合,那么我们还可以分别通过以下方法设置SqlCommand的超时时间。

using (SqlConnection connection = GetConnection())
{undefined
……

SqlDataAdapter sqlDA = new SqlDataAdapter();

sqlDA.SelectCommand.CommandTimeout = 180;//设置查询sql的超时时间
sqlDA.InsertCommand.CommandTimeout = 180;//设置插入sql的超时时间
sqlDA.UpdateCommand.CommandTimeout = 180;//设置修改sql的超时时间
sqlDA.DeleteCommand.CommandTimeout = 180;//设置删除sql的超时时间


大家在有些网站上可能会看到以下解决方法
1),在数据库的连接字符串中添加超时时间设置,如下:
SqlConnection con = new SqlConnection'server=.;database=myDB;uid=sa;pwd=password;Connect Timeout=180'
但是经测试,无效。可能是我的测试方法错误吧!!!

2),设置SqlConnection对象的超时时间。
该方法是肯定行不通了,因为SqlConnection的ConnectionTimeout属性根本就是个只读属性,不允许设置值。从它的定义就可以看出来了,定义如下:

//
//摘要:
//获取在尝试建立连接时终止尝试并生成错误之前所等待的时间。
//
//返回结果:
//等待连接打开的时间(以秒为单位)。默认值为 15 秒。
//
// 异常:
//System.ArgumentException:
//所设置的值小于 0。
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[ResDescription("SqlConnection_ConnectionTimeout")]
public override int ConnectionTimeout { get; }


2,设置asp.net请求的超时时间。
在上面的设置中我们有处理了sql的超时时间,但可能你的设置还是无效。这是为什么呢?因为你还没有设置asp.net请求的超时时间。
要如何设置asp.net请求的超时时间呢?修改web.config的httpRunTime节即可,示例如下:

<system.web>
<httpRuntime executionTimeout="180" />
</system.web>


其中httpRuntime属性与executionTimeout属性的意思分别如下:
httpRuntime: 配置 ASP.NET HTTP 运行时设置,以确定如何处理对 ASP.NET 应用程序的请求。
executionTimeout: 设置asp.net关闭前允许发生的上载秒数

设置完这两步,我们的问题才算的真正的解决了。

随着数据库数据的不断增大,查询时间也随之增长。而客户端与数据库连接时间以及命令的执行时间都是有限的.默认为30s。所以在查询数据的时候,程序会出现 “超时时间已到。在操作完成之前超时时间已过或服务器未响应” 异常。经检查后发现,这是因为页面在读取数据库中的数据时耗时太长,超过了默认的30秒。所以报出了以上错误,解决该问题的方法是:一,优化sql语句,提高查询速度二,延长sql超时的时间设置最好的方法当然是第一种了,这才是治本的方法。但sql优化可不是一件简单的活,具体的环境有不同的方法。本章主要
解决办法有以下三种,可以尝试处理,一般可以搞定: 1.原因应该在数据访问有问题,可以把连接 时间 设置长些,在数据库连接字符串,加上Connect Timeout=18000,单位毫秒 2,在web.config中加上以下语句: <system.web> <httpRuntime maxRequestLength=”102400″ executionTimeou...
SQL Server 2012 已成功与 服务器 建立连接,但是在登录前的握手期间发生错误。 (provider: SSL Provider, error: 0 - 等待的 操作 过时。
楼主用 SQL Server 2012 在连接其他电脑的实例时,一直提示“已成功与 服务器 建立连接,但是在登录前的握手期间发生错误。 (provider: SSL Provider, error: 0 - 等待的 操作 过时。” Google了很多资料,综合自己的问题,并参照官方问题介绍:http://support.microsoft.com/kb/2568167 和另外一位仁兄的博客http://
错误信息: System.NotSupportedException:“The specified LINQ expression contains references to queries that are associated with different contexts.” 不支持的异常:指定的Linq语句包含了来自不同上下文的查询。 原因分析: 不支持跨DbContext查询,例如join两个不同的DbContext。 解决办法: 将其中一个查询结果先转换为本地查询,例如List集合
超时 时间 已到 。在 操作 完成 之前 超时 时间 已过 服务器 响应 。 说明: 执行 当前 Web 请求期间,出现 处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data. Sql Client. Sql Exception: 超时 时间 已到 。在 操作 完成 之前 超时 时间 已过 服务器 响应 。 源错误:...
错误提示: System.Data. Sql Client. Sql Exception (0x80131904): 执行 超时 已过期 完成 操作 之前 超时 服务器 响应 。 解决方案: exec sp_updatestats;.
lock.lock;//阻塞式等待。默认加锁的 时间 都是30s 时间 。 1),锁的自动续期,如果业务超长,运行期间自动给锁续上新的30s。不用担心过业务 时间 超长,锁自动过期被删掉。 2),加锁的业务只要运行 完成 ,就不会给当前锁续期,即使不手动解锁,默认锁在30s以后自动删除。 lock.lock(10,TimeUnit.SECONDS);//10秒自动解锁,自动解锁 时间 一定要大于业务 执行 时间
当我们在 SQL Server中修改字段时,有时候可能会遇到 超时 的情况。这通常是因为修改所涉及的数据库表格太大, 操作 耗时较长,或者当前数据库的负载较高,导致 服务器 无法及时 响应 。 为了解决这个问题,我们可以采取以下几个方法: 1. 增加 超时 时间 :可以通过更改 SQL Server Management Studio (SSMS) 中的查询 超时 时间 来解决。默认情况下,SSMS的查询 超时 时间 为30秒,我们可以将其增加到更大的值,如60秒或120秒,在这个 时间 范围内,尝试修改字段。 2. 拆分修改 操作 :如果表格非常大,一次性进行修改可能会导致 超时 。可以将修改 操作 拆分成多个小的 操作 ,逐渐修改表格的每一部分。可以使用分页查询、游标或者临时表来实现这个目的。 3. 优化数据库性能: 超时 问题还可能是由于数据库的性能不佳引起的。我们可以通过优化查询、创建索引、减少表的规模等手段来提高数据库的性能,从而减少修改字段时的 超时 问题。 4. 降低数据库负载:如果数据库的负载过高,我们可以尝试调整其他 操作 的优先级,将修改字段的 操作 放在负载较低的时候进行。我们也可以考虑增加 服务器 的资源(如CPU、内存等)来提高数据库的负载能力。 总之,当我们在 SQL Server中修改字段时遇到 超时 问题,我们可以通过增加 超时 时间 、拆分 操作 、优化性能和降低负载等方法来解决。每个方法的适用性取决于具体情况,我们需要根据实际情况选择最合适的方法来解决 超时 问题。