1、在软件领域中,线程A需要资源X,而线程B需要资源Y,而双方都掌握有对方所要的资源,烂瘀佐栾这种情况称为死锁(deadlock傧韭茆鳟),或死亡拥抱(the deadly embrace)。在并发程序设计中,死锁 (deadlock) 是一种十分常见的逻辑错误。通过采用正确的编程方式,死锁的发生不难避免。
2、使用事务时,尽量缩短事务的逻辑处理过程,及早提交或回滚事务; (细化处理逻辑,执行一段逻辑后便回褪谱璋条滚或者提交,然后再执行其它逻辑,直到事物执行完毕提交)
3、设置死锁超时参数为合理范围,如:3分钟-10分种;超过时间,自动放弃本次操作,避免进程悬挂;
4、在正式版本之前,对所有的脚本和SP(Storage Procedure)都要仔细测试,也就是说,在正式上线前,需要经过严格的逻辑测试
5、对于SQL SERVER数据库,一般不要修改SQL SERVER事务的默认级别,而且不推荐强行加锁
6、另外,就是要养成良好的编程习惯,做到能优化程序,检查并避免死锁现象出现;在SQL SERVER中,针对所有的SP都要有错误处理(通过@error)