- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQL数据库超时过期问题的解决方案
减小字体 增大字体
如果SQL的数据库越来越多,有时候会遇到读取超时,死锁等一大堆问题,按经验来说,数据结构设计不合理,经常使用视图等原因都有,那些怎么解决呢?下面看文章
1.由于数据库设计问题造成SQL数据库新增数据时超时
症状: Microsoft OLE DB Provider for SQL Server 错误 80040e31 ([ODBC SQL Server Driver]超时已过期); 服务器上看CPU、内存占用率很低; 事件日志中提示: 数据库 ********* 中文件 *********** 的自动增长在 453 毫秒后已取消或出现超时。使用 ALTER DATABASE 设置更小的 FILEGROWTH 或设置新的大小。 原因: 数据库设置时,[文件增长]按百分比来增长,当数据库文件很大时(1G以上),新增操作都会报超时,而这时候其实CPU、内存占用率都非常非常的低。 解决方法: 把上述的文件增长这里设置为一个更低的百分比或者直接指定增加多少兆字节。
2.SQL Server数据库超时设置
修改客户端的连接超时设置。默认情况下,通过企业管理器注册另外一台SQL Server的超时设置是 4 秒,而查询分析器是 15 秒。
企业管理器中的设置:
A、在企业管理器中,选择菜单上的工具,再选择选项; B、在弹出的SQL Server企业管理器属性窗口中,点击高级选项卡; C、在连接设置下的登录超时(秒)右边的框中输入一个比较大的数字,如 30。
查询分析器中的设置:
单击“工具”-选项-连接; 将登录超时设置为一个较大的数字,连接超时改为0。
3.查询语句时超时
原因分析:
查询超时一般来说首先要从sql语句和数据表的结构上找原因,优化sql语句和为数据库的查询字段建索引是最常用的办法。 另外,数据库的查询超时设置一般是sqlserver自己维护的(在你没有修改query wait配置前),只有当你的实际查询时间超过估计查询时间的25倍时,才会超时。 而造成超出估计值那么多的原因有两种可能: 一是估计时间不准确; 二是sql语句涉及到大量占用内存的查询(如排序和哈希操作),内存不够,需要排队等待资源造成的。
解决办法: A.优化语句,创建\使用合适的索引; B.解决第一个问题的方法,更新要查询表的索引分发统计,保证估计时间的正确性,UPDATE STATISTICS 表名; C.增加内存
如果想手动设置查询超时,可以使用以下语句: sp_configure show advanced options, 1 GO RECONFIGURE GO sp_configure query wait, 2147483647 GO RECONFIGURE GO
4.应用程序连接失败
故障: 在应用程序中我们也会遇到类似的错误信息,例如: Microsoft OLE DB Provider for ODBC Drivers 错误 [Microsoft][ODBC SQL Server Driver]超时已过期.
解决方法: A.如果遇到连接超时的错误,我们可以在程序中修改 Connection 对象的超时设置,再打开该连接。例如:
%Set Conn = Server.CreateObject(ADODB.Connection)DSNtest=DRIVER={SQL Server};SERVER=ServerName;UID=USER;PWD=password;DATABASE=mydatabaseConn. Properties(Connect Timeout) = 15 以秒为单位Conn.open DSNtest% B. 如果遇到查询超时的错误,我们可以在程序中修改 Recordset 对象的超时设置,再打开结果集。例如:
Dim cn As New ADODB.ConnectionDim rs As ADODB.Recordset. . . cmd1 = txtQuery.TextSet rs = New ADODB.Recordsetrs.Properties(Command Time Out) = 300同样以秒为单位,如果设置为 0 表示无限制rs.Open cmd1, cnrs.MoveFirst. . .
另外,一些硬件及网络方面的原因也可能造成SQL数据库连接超时.
呵呵,这个问题很有趣不是吗?
上面的同志们只是给出一些建议,以我的经验来看(oracle),
如果数据量较大,
文档评论(0)