### The error occurred while setting parameters### SQL: update ERP_SCjh_zzc_pl set IF_TONGBU=1 where (IF_TONGBU=0 or IF_TONGBU is null) and djno=? and djlb=?### Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 事务(进程 ID 191)与另一个进程被死锁在 锁 | 通信缓冲区
概要 锁升级为表锁插入转换很多细粒度的锁 (如行或页锁) 的过程.Microsoft SQL Server 动态确定何时执行锁升级.作出决定之前,SQL Server 将特定的扫描,整个事务,并且用于锁定在系统中作为一个整体的内存由持有的锁的数目只会保留的锁的数量考虑.通常情况下,SQL Server 默认行为导致位置,这会提高性能,或当必须将过多的系统锁定内存减少到更合理水平,只能在这些时间点发生的锁升级.但是,一些应用程序或查询的设计可能会触发一次时不太理想,并已呈报的表锁可能会阻止其他用户
相比于 SQL Server 2005(比如快照隔离和改进的锁与死锁监视),SQL Server 2008 并没有在锁的行为和特性上做出任何重大改变.SQL Server 2008 引入的一个主要新特性是在表级控制锁升级行为的能力.新的LOCK_ESCALATION表选项允许你启用或禁用表级锁升级.这个新特性能够减少锁竞争并且改善并发性,特别是对于分区表(partitioned tables).SQL Server 2008 的另一个改变是不再支持Locks configuration设定.同样
如果想要查出SQL Server死锁的原因,下面就教您SQL Server死锁监控的语句写法,如果您对此方面感兴趣的话,不妨一看. 下面的SQL语句运行之后,便可以查找出SQLServer死锁和阻塞的源头. 查找出SQLServer的死锁和阻塞的源头 --查找出SQLServer死锁和阻塞的源头 use master go declare @spid int,@bl int DECLARE s_cur CURSOR FOR ,blocked ) a ) b where a.blocked=spi