引起超时的原因及表解锁的方法

[Sql Server]超时时间已到。在操作完成之前超时时间已过或服务器未响应。

原因分析:

1.如果用到了事务处理

   在事务开始BeginTransaction()与事务结束transaction.Commit()中间用到了没有启动事务的过程,如其他查询等,会提示此错误。另外一种情况就是没有正确的使用事务导致表被锁定,也会引起超时。

2.ADO.NET的使用引发的问题

   connection未及时关闭也会引发超时的问题。另外就是Command命令执行超时,此时根据需要可以修改command.CommandTimeout的时间,默认时间为30秒。

3.Web页面执行超时,如上传大批量的文件

   需要修改配置文件:

<system.web> 

<httpRuntime maxRequestLength="102400" executionTimeout="720" />

</system.web>

 

 

表解锁的方法:
select id from sysobjects where  name='TableName' --查询表名为TableName的表的id

exec  sp_lock --执行该存储过程得到所有锁定的表的信息,根据前一步中查到的id可找到spid信息即进程ID

kill spid --解锁,例如kill 70 就是关闭进程id为70的锁定表的进程

以上是表解锁的方法,根本的解决方法还是得找出引起表被锁定的原因。我遇到的情况是未正确使用事务引起的。

另外,在未解锁的情况下可以使with (nolock)来执行SQL,例如select username from User with (nolock) where userid=101 。

 

参考:http://blog.csdn.net/Tonyzhou2008/archive/2009/12/18/5031823.aspx

http://blog.csdn.net/duanqingfeng/archive/2009/03/30/4036600.aspx

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
http 请求超时原因有很多可能,以下是一些常见的原因: 1. 网络连接问题:请求可能由于网络延迟、网络中断或不稳定的连接而超时。这可能是由于服务器故障、网络拥塞或较高的网络负载引起的。 2. 服务器处理时间过长:如果服务器在处理请求时花费了过长的时间,客户端可能会在等待服务器响应超时。这可能是由于服务器端代码效率低下、数据库查询慢等原因引起的。 3. 防火墙或代理问题:防火墙或代理服务器可能会限制连接时间,如果超过了设置的时间限制,请求就会超时。 4. DNS 解析问题:如果域名解析出现问题,客户端可能无法正确地找到服务器的 IP 地址,导致请求超时。 5. 请求过于频繁:一些服务器可能会对频繁的请求进行限制,如果客户端发送了过多的请求,服务器可能会拒绝或延迟响应,导致请求超时。 6. 客户端设置问题:有时候客户端可能会配置了较短的超时时间,导致请求在规定时间内没有得到响应就被取消。 要解决请求超时问题,可以尝试以下几种方法: - 检查网络连接是否正常,确保网络稳定; - 检查服务器端代码和数据库查询是否效率高; - 检查防火墙或代理设置,确保没有限制连接时间; - 检查 DNS 解析是否正常; - 调整客户端超时时间设置; - 如果请求过于频繁,考虑减少请求频率或与服务器管理员联系; - 如果问题仍然存在,可以尝试使用其他网络工具进行请求测试,以确定是否是特定于某个客户端或网络环境的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值