一个奇怪的问题,数据库过一段时间就不能进行增,删,改操作,只能读取!!!

时间:2023-01-06 16:59:14
用的SQL SERVER2000数据库,网站运行一段时间后,就只能读取,不能进行任何增加,删除,修改操作了,重启数据库后能能正常一段时间。
初步怀疑是网站有程序没有关闭连接,但是因为是别人的老网站,程序是.NET发布过的,没有后台程序代码,无从改起。有没有什么办法让数据库连接快满的时候自动释放所有连接呢?

12 个解决方案

#1


不能吧 没有关闭连接 ,读取也会出问题的 。怀疑不科学

#2


如果进行增删改 会有什么提示 或者错误?

#3


进行增删改会提示连接超时

#4


查询速度如何?

#5


查询速度倒是挺快的

#6


当网站不能增删改 时 ,你有在数据库直接操作增删改吗? 是否可以

#7


1:用户,只给了reader权限,没有给writer,每次还原,不小心漏点有可能
2:连接串被变更了。
3:DB,数据库可能被切换成了stand by模式。
以上都有可能,既然能查询,不能变更。说明网络没问题,先看下这3方面。

#8


引用 楼主 suano 的回复:
用的SQL SERVER2000数据库,网站运行一段时间后,就只能读取,不能进行任何增加,删除,修改操作了,重启数据库后能能正常一段时间。
初步怀疑是网站有程序没有关闭连接,但是因为是别人的老网站,程序是.NET发布过的,没有后台程序代码,无从改起。有没有什么办法让数据库连接快满的时候自动释放所有连接呢?



根据lz的描述,从重启后可以坚持一段时间上判断,可能是tempdb的问题。lz检查一下看看tempdb的大小变化。

优化tempdb 参考 http://msdn.microsoft.com/zh-cn/library/ms175527(v=sql.105).aspx

#9


如果你的程序使用了事务也可能出现这种情况,比如一种耦合性的代码发生:
如:
trans1:
操作A表;
操作B表
end trans

trans2
操作B表;
操作A表
endtrans
可以查一查

#10


我的第一反应是日志满了。。
但是怎么解释重启之后能用一阵??

#11


执行DML语句会报什么错误?可以查询数据库的状态?standy by?read/write?

#12


日志文件是设置的无限制的,虽然已经有24G之大。但是,清空了日志文件之后,问题居然貌似解决了。。。,已经二个礼拜了,还没有报错 一个奇怪的问题,数据库过一段时间就不能进行增,删,改操作,只能读取!!!,结贴,送分。

#1


不能吧 没有关闭连接 ,读取也会出问题的 。怀疑不科学

#2


如果进行增删改 会有什么提示 或者错误?

#3


进行增删改会提示连接超时

#4


查询速度如何?

#5


查询速度倒是挺快的

#6


当网站不能增删改 时 ,你有在数据库直接操作增删改吗? 是否可以

#7


1:用户,只给了reader权限,没有给writer,每次还原,不小心漏点有可能
2:连接串被变更了。
3:DB,数据库可能被切换成了stand by模式。
以上都有可能,既然能查询,不能变更。说明网络没问题,先看下这3方面。

#8


引用 楼主 suano 的回复:
用的SQL SERVER2000数据库,网站运行一段时间后,就只能读取,不能进行任何增加,删除,修改操作了,重启数据库后能能正常一段时间。
初步怀疑是网站有程序没有关闭连接,但是因为是别人的老网站,程序是.NET发布过的,没有后台程序代码,无从改起。有没有什么办法让数据库连接快满的时候自动释放所有连接呢?



根据lz的描述,从重启后可以坚持一段时间上判断,可能是tempdb的问题。lz检查一下看看tempdb的大小变化。

优化tempdb 参考 http://msdn.microsoft.com/zh-cn/library/ms175527(v=sql.105).aspx

#9


如果你的程序使用了事务也可能出现这种情况,比如一种耦合性的代码发生:
如:
trans1:
操作A表;
操作B表
end trans

trans2
操作B表;
操作A表
endtrans
可以查一查

#10


我的第一反应是日志满了。。
但是怎么解释重启之后能用一阵??

#11


执行DML语句会报什么错误?可以查询数据库的状态?standy by?read/write?

#12


日志文件是设置的无限制的,虽然已经有24G之大。但是,清空了日志文件之后,问题居然貌似解决了。。。,已经二个礼拜了,还没有报错 一个奇怪的问题,数据库过一段时间就不能进行增,删,改操作,只能读取!!!,结贴,送分。