真实死锁案例记录

使用LR11压测api的时候偶尔会遇到死锁问题,后来通过SQL Server Profiler监控死锁语句发现是加入购物车和下单完毕后清除购物车两个语句发生死锁了,sql语句大概如下:
加入购物车:insert usercart(cartid,userid,productcode) .....
删除购物车:delete usercart where productcode in ......
本来是很简单的语句没有什么逻辑,找了半天终于找到原因:usercart表有个唯一索引,是由cartid,userid,productcode三个字段构成的唯一索引(防止购物车加入的数据重复),后来把索引去掉,验证重复放到sql语句里就解决死锁问题了;

猜你喜欢

转载自www.cnblogs.com/hpp3501/p/10579085.html