hi,圣诞快乐~
死锁的防止多用户操作,为维持数据完整性的一种保护措施.在 SQL 标准中定义几种不同的事务隔离级别(要仔细了解请阅读这方面的文档).
最经常"惹祸"的情况就是:
两个事务同时修改了一条记录.也就是一个记录被事务 A 修改了,但是没有提交.事务 B 企图要修改这条记录的时候就会被提示死锁.当然这里还涉及一个冲突是是否等待(超时)的因素,如果你使用 IBX ,缺省设置是冲突时不等待,立即返回错误.如果你的事务 A 太长不提交,等待也会超时的.
所以一个尽量短的修改事务会给你提供更好的多用户并发能力.