解决sql查询总是超时已过期.pdf
《解决sql查询总是超时已过期.pdf》由会员分享,可在线阅读,更多相关《解决sql查询总是超时已过期.pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、解决 SQL 查询总是 超时已过期 1.由于数据库设计问题造成 SQL 数据库新增数据时超时 症状:Microsoft OLE DB Provider for SQL Server 错误 80040e31(ODBC SQL Server Driver超时已过期);服务器上看 CPU、内存占用率很低;事件日志中提示:数据库*中文件*的自动增长在 453 毫秒后已取消或出现超时。使用 ALTER DATABASE 设置更小的 FILEGROWTH 或设置新的大小。原因:数据库设置时,文件增长按百分比来增长,当数据库文件很大时(1G 以上),新增操作都会报超时,而这时候其实 CPU、内存占用率都非常
2、非常的低。解决方法:把上述的文件增长这里设置为一个更低的百分比或者直接指定增加多少兆字节。Server 数据库超时设置 修改客户端的连接超时设置。默认情况下,通过企业管理器注册另外一台 SQL Server 的超时设置是 4 秒,而查询分析器是 15 秒。企业管理器中的设置:在企业管理器中,选择菜单上的工具,再选择选项;在弹出的SQL Server 企业管理器属性窗口中,点击高级选项卡;在连接设置下的登录超时(秒)右边的框中输入一个比较大的数字,如 30。查询分析器中的设置:单击“工具”-选项-连接;将登录超时设置为一个较大的数字,连接超时改为 0。3.查询语句时超时 原因分析:查询超时一般来
3、说首先要从 sql 语句和数据表的结构上找原因,优化 sql 语句和为数据库的查询字段建索引是最常用的办法。另外,数据库的查询超时设置一般是 sqlserver 自己维护的(在你没有修改 query wait 配置前),只有当你的实际查询时间超过估计查询时间的 25 倍时,才会超时。而造成超出估计值那么多的原因有两种可能:估计时间不准确;sql 语句涉及到大量占用内存的查询(如排序和哈希操作),内存不够,需要排队等待资源造成的。解决办法:优化语句,创建使用合适的索引;解决第一个问题的方法,更新要查询表的索引分发统计,保证估计时间的正确性,UPDATE STATISTICS 表名;增加内存 如果
4、想手动设置查询超时,可以使用以下语句:sp_configure show advanced options,1 GO RECONFIGURE GO sp_configure query wait,47 GO RECONFIGURE GO 4.应用程序连接失败 故障:在应用程序中我们也会遇到类似的错误信息,例如:Microsoft OLE DB Provider for ODBC Drivers 错误.MicrosoftODBC SQL Server Driver超时已过期.解决方法:A.如果遇到连接超时的错误,我们可以在程序中修改 Connection 对象的超时设置,再打开该连接。例如:%S
5、et Conn=()DSNtest=DRIVER=SQL Server;SERVER=ServerName;UID=USER;PWD=password;DATABASE=mydatabaseConn.Properties(Connect Timeout)=15 以秒为单位 DSNtest%B.如果遇到查询超时的错误,我们可以在程序中修改 Recordset 对象的超时设置,再打开结果集。例如:Dim cn As New rs As.cmd1=rs=New Command Time Out)=300同样以秒为单位,如果设置为 0 表示无限制 cmd1,.另外,一些硬件及网络方面的原因也可能造成
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 解决 sql 查询 总是 超时 过期
限制150内