求PB + MSSQL,可以导致死锁的代码(必然会死锁的或死锁可能性极高的)
求PB + MSSQL,可以导致死锁的代码(必然会死锁的或死锁可能性极高的) 问题点数:0、回复次数:11Top
1 楼workhand(我可憨了...)回复于 2003-11-04 08:45:43 得分 0
触发器设置不合理,大量使用游标,等等,很容易的Top
2 楼dajianshi(拔剑四顾心茫然)回复于 2003-11-04 09:27:05 得分 0
要死锁还不好办,写一个连续更新3个表以上的程序,中间不提交!
注意这不是一个机器能够办到的Top
3 楼liqianhong(孤独流星)回复于 2003-11-04 09:55:37 得分 0
我忘了说我的意思了
我们做的一个软件,有时锁,有时不锁,忙的时候有可能不锁,
不忙的时候反而有可能锁,甚至是一台机器也这样,去查的时候,
这个人只在操作日常业务,没干别的.
锁的时候,在服务器上去查,SQL中阻蹇的进程,按物理地址查机器,结果那台机器根本没开机!!
我们查了很久都没查出原因来,
只有希望大家列出所有可能导致死锁的代码了。执行一个事务未提交或者事务占用的时间太长的可能性不是很大。我们的程序中除了事务必须的以外,很多地方都是autocommit的.
我们都是编过很多年程序的了。而且我也查过代码,这种现象几乎是不存在的。如果说主要业务上有问题,应该必锁无疑,下面的业务员肯定会反映的。Top
4 楼liqianhong(孤独流星)回复于 2003-11-04 09:57:57 得分 0
锁的那个表是没用触发器的,绝对没有游标。Top
5 楼liqianhong(孤独流星)回复于 2004-01-16 11:42:29 得分 0
原因我们查出来了
PB中一个下拉式列表框中的条件写错了
select * from a where convert(datetime,riqi,111)='2003-01-04'
结果建立的索引在这句中没起到作用
所以有时的死了
select * from a where riqi >='2003-01-04' <riqi <'2003-01-05'
就OK了,再也不死锁了
Top
6 楼klbt(快乐白兔)回复于 2004-01-16 12:25:39 得分 0
祝贺问题的解决!Top
7 楼thelazyman(卧虎藏龙)回复于 2004-01-16 13:01:02 得分 0
多查找个方面原因!
自然会找出!
向楼主学习!!!Top
8 楼swordmanli(乘风破浪会有时,直挂云帆济沧海--太白)回复于 2004-01-16 21:34:27 得分 0
死锁不是那么容易制造的,更多的是阻塞!
你碰到的问题是阻塞!
原因我们查出来了
PB中一个下拉式列表框中的条件写错了
select * from a where convert(datetime,riqi,111)='2003-01-04'
结果建立的索引在这句中没起到作用
所以有时的死了
select * from a where riqi >='2003-01-04' <riqi <'2003-01-05'
就OK了,再也不死锁了Top
9 楼hncslsy(hihi)回复于 2004-01-17 10:36:48 得分 0
问题解决就OK
Top
10 楼TianChong(*︿_︿* ○Ооo○泡泡oо㊣VC高手群:2997669)回复于 2004-01-27 04:26:33 得分 0
问题解决就好,我还想让你把全部源程序发过来,好帮你仔细检查检查呢,看来帮不上忙了.Top
11 楼flyerlxg(飞鸟)回复于 2004-01-27 17:44:47 得分 0
嘿嘿,解决了就好,向楼主学习!Top




