sql数据库表锁死
各位大侠,小女子最近在维护一个应用程序,是用C#编写的,后台数据库是sql2000(sp3补丁已打上),最近数据库总是被锁死,我想问问什么情况下数据库会被锁死啊?!我查“企业管理器”的,里面“锁/进程ID”上显示“spid 53(正在阻塞)”,“spid 55(阻塞者 53)”。我们经理说不是C#代码的问题,应为被锁的总是只有表Table1,救命啊! 问题点数:100、回复次数:16Top
1 楼winny1982()回复于 2005-06-27 11:16:17 得分 0
我就想知道是什么原因造成的,怎么解决撒?Top
2 楼winny1982()回复于 2005-06-27 13:30:08 得分 0
大家帮帮忙吧Top
3 楼lzymagi(逸)回复于 2005-06-27 13:36:55 得分 10
数据量大不大?是不是独占数据库?Top
4 楼winny1982()回复于 2005-06-27 14:04:04 得分 0
数据量很少的,没设置过独占,但是锁定的类型是‘IX’的Top
5 楼MINDNET(风)回复于 2005-06-27 14:09:21 得分 0
不代码的问题?
帮你顶Top
6 楼Annyang620(青兒)回复于 2005-06-27 14:34:21 得分 0
IX是intent exclusive lock,它不可以和'S','U'鎖共存,Top
7 楼chichunhua(無愧與心)回复于 2005-06-27 15:00:12 得分 0
markTop
8 楼winny1982()回复于 2005-06-28 10:03:44 得分 0
我知道,我想知道什么原因造成的,怎么解决?如果是代码的问题,那不该只针对这个表啊?!Top
9 楼microd(重构一切)回复于 2005-06-28 10:20:17 得分 80
把死锁的sid 找到,打开它的属性,把里面死锁的SQL 指令复制出来,每当死锁时,均这样去做,然后,把你复制出来的SQL 指令拿到查询分析器下去执行,分析一下它所主要的成本花费在什么地方,主要是针对些什么表的死锁,接下来就去查你的c#代码,应该就可以发现你的问题(再去优化你的程序)Top
10 楼winny1982()回复于 2005-06-28 13:23:05 得分 0
谢谢,叔叔Top
11 楼winny1982()回复于 2005-06-28 13:24:55 得分 0
岂不是要等再次锁定才知道原因?Top
12 楼great388(NET菜鸟)回复于 2005-06-28 14:22:03 得分 0
不是谢谢啊姨吗??
Top
13 楼wenhong(坚实的肩膀)回复于 2005-06-28 19:29:29 得分 10
我觉的应该改正你代码,应该是你的代码中存在问题,如果你是多用户的话,可能性就更大了.
先找出执行哪些功能会发生死锁,再去看你的程序代码吧Top
14 楼good2speed(Goodspeed)回复于 2005-06-28 20:57:16 得分 0
看代码,一定是它Top
15 楼cemma(佩)回复于 2005-06-29 08:40:26 得分 0
你的经理居然敢说不是代码的问题?! 我估计他才有问题。
出了死锁,首先就应该怀疑程序。Top
16 楼winny1982()回复于 2005-06-29 13:24:29 得分 0
谢谢叔叔阿姨们的帮助,问题找到了,是程序里有个死循环,测了好久才找到的。Top




