哪吒机器人提醒:

提醒:博客园-Wizard 编程网
【标题】快速搞懂 SQL Server 的锁定和阻塞
【摘要】作者: wizardwu 发表于 2010-08-13 02:30 原文链接 阅读: 722 评论: 7本帖提供两种做法,可避免让 client-side 程序,持续等待 sql server 中事务锁定造成的不正常或长时间阻塞,而让用户也无限期等待,甚至造成 connection pooling 连接数超过容量。日前公司 server-side 有组件,疑似因撰写时 exception-handling 做得不周全,导致罕见的特殊例外发生时,让 sql server 的事务未执行到 cmmmit 或 rollback,造成某些表或记录被「锁定 (lock)」。后来又有大量的 request,要透过代码访问这些被锁定的记录,结果造成了严重的长时间「阻塞」,最后有大量 process 在 sql server 呈现「等待中」的状态。由于 sql server 的「事务隔离级别」默认是 read committed (事务期间别人无法读取),加上 sql server 的锁定造成阻塞时,默认是别的进程必须无限期等待 (lock_timeout = -1)。结果这些大量的客户端 requ... (04-15 10:09)