如何防止发生死锁??

kwungshome 2006-01-19 04:34:22
公司MIS系统在修改一个表的数据后经常发生死锁,我也不知道是不是死锁,反正在修改的时候程序一直在运行,不能完成数据的修改,只能重新起动SQL服务,然后进入系统后又可以修改这个表的数据了。这种情况一天出现个一两次。很烦啊,不知道哪位能帮我解决这个问题,分不够可以加!
...全文
260 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
put2006 2006-01-20
  • 打赏
  • 举报
回复
begin tran的时候,记得一定要commit/rollback。否则假如事务中存在update的语句的话,那对该表所加的更新排它缩就一直会占有,其他共享缩等都不能对该表进行访问。
javanow 2006-01-20
  • 打赏
  • 举报
回复
偶尔发生死锁是非常正常的。

但如果你发生阻塞后,需要重启服务才能解决,那么我建议你查查是不是有未提交的事务。

你的情况不叫死锁,叫阻塞。
死锁发生时,sql server会很快帮你自动牺牲一个进程来解除死锁。
我的网站上有一篇关于死锁和阻塞的文件,你可以看看。

--------------------------
http://chinadba.cn
深圳骄子数据库服务网
最具实战经验的数据库优化、管理、设计、培训。
flyeq008 2006-01-20
  • 打赏
  • 举报
回复
是啊。。这个问题我也碰到过。。。
有好多兄弟都说是事务控制问题或进程阻塞问题。。。
那这些问题的解决办法是什么呢??各位大侠请赐教!!
rouqu 2006-01-20
  • 打赏
  • 举报
回复
有点道理 学习一下
淡蓝冰 2006-01-20
  • 打赏
  • 举报
回复
我們之前也出現過這樣的問題。之后是這樣修改的﹐修改之后問題很少出現了。
如果只是對表進行查詢時﹐你也把它的鎖設為
set transaction isolation level read uncommitted
百查詢完之后﹐再恢復為
set transaction isolation level read committed

這樣至少使用查詢語句時就不會出現鎖定情況了。
rouqu 2006-01-19
  • 打赏
  • 举报
回复
如果你自己都不明确 很难弄清楚原因
kwungshome 2006-01-19
  • 打赏
  • 举报
回复
应该没有吧,只要是修改这个这个查询出来的数据再点修改确定就发生一直在运行,但是其它数据还是可以正常操作!
-狙击手- 2006-01-19
  • 打赏
  • 举报
回复
程序事务控制的问题
wfliu 2006-01-19
  • 打赏
  • 举报
回复
看是否有未提交的语句

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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