关于数据库Timeout expired…server is not responding的解决方案

当访问一个页面是出现

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

此时表示数据库访问超时,可能此时在执行一个很费时的SQL 操作,而无法在相应时间内给予回复。
关于引起Timeout,比较常见的有可能是因为SqlConnection.ConnectionTimeout引起,或者Connection打开后没有关闭。

在这里还有另一个很有可能,就是你没有设置你的SqlCommand.CommandTimeout。

SqlCommand.CommandTimeout:
获取或设置在终止执行命令的尝试并生成错误之前的等待时间。
等待命令执行的时间(以秒为单位)。默认为 30 秒。

如果设置值 0 ,表示无限制,在CommandTimeout中应避免值 0,否则会无限期地等待执行命令。

另外出现此时错误的原因也有可能是数据库地址错误照成无法连接,此时应当检查数据库连接的配置文件。

同时,对执行SQL语句超时的处理,我们应当尽可能的对数据库的存取过程进行优化,并在读取页面做相应的分页处理等,以避免数据库操作相应时间的超时错误。

关于数据库的优化,之前的博文里已有基本优化方案,更多的方案后续会另外开篇。

本篇到此,谢谢关注。

BeiTown
2013.07.03

本文链接:关于数据库Timeout expired...server is not responding的解决方案

转载声明:BeiTown原创,转载请注明来源:BeiTown's Coder 编码之源,谢谢


Tags: , ,

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>