Sql Server的数据库超时问题
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
一、由于数据库设计问题造成SQL数据库新增数据时超时 症状: Microsoft OLE DB Provider for SQL Server 错误 '80040e31' ([ODBC SQL Server Driver]超时已过期);
原因: 解决方法: 二、SQL Server数据库超时设置
修改客户端的连接超时设置。默认情况下,通过企业管理器注册另外一台SQL Server的超时设置是 4 秒,而查询分析器是 15 秒。 企业管理器中的设置: 在企业管理器中,选择菜单上的"工具",再选择"选项"; 在弹出的"SQL Server企业管理器属性"窗口中,点击"高级"选项卡; 在"连接设置"下的"登录超时(秒)"右边的框中输入一个比较大的数字,如 30。 查询分析器中的设置: 单击“工具”->"选项"->"连接"; 将登录超时设置为一个较大的数字,连接超时改为0。
查询超时一般来说首先要从sql语句和数据表的结构上找原因,优化sql语句和为数据库的查询字段建索引是最常用的办法。 另外,数据库的查询超时设置一般是sqlserver自己维护的(在你没有修改query wait配置前),只有当你的实际查询时间超过估计查询时间的25倍时,才会超时。 而造成超出估计值那么多的原因有两种可能: 一是估计时间不准确; 二是sql语句涉及到大量占用内存的查询(如排序和哈希操作),内存不够,需要排队等待资源造成的。 这有什么办法解决呢? 1、优化语句,创建使用合适的索引; 2、解决第一个问题的方法,更新要查询表的索引分发统计,保证估计时间的正确性,UPDATE STATISTICS 表名; 3、增加内存。 如果想手动设置查询超时,可以使用以下语句:
你会遇到这样的故障: 在应用程序中我们也会遇到类似的错误信息,例如: Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'. [Microsoft][ODBC SQL Server Driver]超时已过期. 解决方法如下: 如果遇到连接超时的错误,我们可以在程序中修改 Connection 对象的超时设置,再打开该连接。例如:
如果遇到查询超时的错误,我们可以在程序中修改 Recordset 对象的超时设置,再打开结果集。例如:
另外,一些硬件及网络方面的原因也可能造成SQL数据库连接超时。 该文章在 2012/3/2 23:30:49 编辑过 |
关键字查询
相关文章
正在查询... |