经常听到DBA在谈论各种数据库时。都会提到一个词语:锁升级。
那么。什么是锁升级呢?它的作用又是什么呢?在什么情况下会出现锁升级呢?
锁升级,就是
将众多细
粒度
锁转换为较少的粗粒度的锁以削减系统开销的进程。
假如行锁是有开销的,那对1行加锁可能没问题,但对1万行加锁。那对系统开销就非常大了,此时。数据库就会将其升级为表锁,以降低开销。
在网上摘抄的一个样例,当
事务
从表中请求行时,SQL Server 自己主动获取受影响的行上的锁,并在包括这些行的页和表或者索引上放置更高级别的
意向锁
。
当
事务
控制的锁数量超过了它的极限时。SQL Server 会试图将表上的
意向锁
更改为更强的锁(比如,将意向排它 (IX) 锁更改为排它 (X) 锁)。获取更强的锁后,表
事务
持有的全部页级锁和行级锁都被释放,从而削减锁的开销。
转载于:https://www.cnblogs.com/bhlsheji/p/5197768.html