数据库超时已过期问题

bobohack 2009-07-02 04:10:39
SQL2000 插入图片数据执行到Update时数据库提示超时已过期,一条都插不进去,我把登陆超时,查询超时改为600 数据库文件大小每次增长已改为1G,插入了2000条后又不行了,表中数据现在只有2000条。
高物帮帮忙,在线等

...全文
106 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
bobohack 2009-07-07
  • 打赏
  • 举报
回复
1111
wxing71395856 2009-07-04
  • 打赏
  • 举报
回复
11111111111
六点下班 2009-07-03
  • 打赏
  • 举报
回复
楼上说的几条我都试过了,我是在UPDATe时报的超时已过期错误》
zhengduan964532 2009-07-03
  • 打赏
  • 举报
回复
引:希望对你有一些帮助
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 错误 '80004005'. [Microsoft][ODBC SQL Server Driver]超时已过期.

  解决方法:

  A.如果遇到连接超时的错误,我们可以在程序中修改 Connection 对象的超时设置,再打开该连接。例如:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSNtest="DRIVER={SQL Server};SERVER=ServerName;UID=USER;
PWD=password;DATABASE=mydatabase"
Conn. Properties("Connect Timeout") = 15 '以秒为单位
Conn.open DSNtest
%>

  B.  如果遇到查询超时的错误,我们可以在程序中修改 Recordset 对象的超时设置,再打开结果集。例如:

Dim cn As New ADODB.Connection
Dim rs As ADODB.Recordset
. . .
cmd1 = txtQuery.Text
Set rs = New ADODB.Recordset
rs.Properties("Command Time Out") = 300
'同样以秒为单位,如果设置为 0 表示无限制
rs.Open cmd1, cn
rs.MoveFirst
. . .

  另外,一些硬件及网络方面的原因也可能造成SQL数据库连接超时.
六点下班 2009-07-03
  • 打赏
  • 举报
回复
服务器是方正的,带了一个十个T的磁盘阵列,数据库文件在磁盘阵列上,插入大约1300条记录时就出现 超时已过期 错误,就是在出入图片到数据库中时,Update时提示超时已过期,等,急
六点下班 2009-07-03
  • 打赏
  • 举报
回复
ding
bobohack 2009-07-02
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 haiwer 的回复:]
可能RAID配置不行

用工具测试下I/O速度
[/Quote]

没用过,什么工具可以测
昵称被占用了 2009-07-02
  • 打赏
  • 举报
回复
可能RAID配置不行

用工具测试下I/O速度
bobohack 2009-07-02
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 drysea 的回复:]
恩,改为0,就不会超时了
[/Quote]
刚开始就是0不行
bobohack 2009-07-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 haiwer 的回复:]
每个图片多大?
[/Quote]

700K左右
bobohack 2009-07-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lzgui 的回复:]
1.楼主可否不用字段存图片,而存图片路径呢???
2.你图片太大了,如不改变图片大小、提高机器配置,怕是不行了..
[/Quote]

不行,一定要存照片到服务器,在公司的服务上可以一直存照片没出现过这问题,拿到客户那里他用方正服务器用的RAID 不知道跟这有关没有
drysea 2009-07-02
  • 打赏
  • 举报
回复
恩,改为0,就不会超时了
taoistong 2009-07-02
  • 打赏
  • 举报
回复
数据库文件不要改为1G,改为1M就够了
fwacky 2009-07-02
  • 打赏
  • 举报
回复

600 =修改为3600,如果还不够长!
就修改为0,永不超时!
fwacky 2009-07-02
  • 打赏
  • 举报
回复

/**
各 ==都
*/
fwacky 2009-07-02
  • 打赏
  • 举报
回复

/**
1,你可以把原图片先打成,缩略图!把缩略图打成二进制存数据库!
2,原图和缩略图各存服务器上,但是地址要存放在数据库字段中!

**/
昵称被占用了 2009-07-02
  • 打赏
  • 举报
回复
每个图片多大?
LZGUI 2009-07-02
  • 打赏
  • 举报
回复
1.楼主可否不用字段存图片,而存图片路径呢???
2.你图片太大了,如不改变图片大小、提高机器配置,怕是不行了..
stromboy007 2009-07-02
  • 打赏
  • 举报
回复
顶·~~~

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧