Chinaunix首页 | 论坛 | 博客
  • 博客访问: 443960
  • 博文数量: 239
  • 博客积分: 8010
  • 博客等级: 中将
  • 技术积分: 2431
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-02 21:12
文章分类
文章存档

2008年(239)

我的朋友

分类:

2008-06-17 23:26:33

锁的升级

事务在处理数据时申请锁,在事务结束后释放锁。如果系统中有很多个事务,或者单个事务需要执行大批量的数据处理,系统中就会存在大量的锁。随着锁数量的增加,系统需要花费大量的CPU资源、内存空间来管理锁。在锁的数目达到一定的数量之后,系统的性能就受到严重影响。

为避免太多的锁,数据库系统采用锁升级(lock escalation)机制,用来减少系统中锁的数目。系统为锁升级设定一个阀值。一个事务拥有的锁超过这个阀值后,系统就将该事务的锁级别升级到一个更高的层次。例如:事务拥有记录锁,在记录锁的数目超过阀值后,系统就将该事务的记录锁升级到表锁。使用一个表锁代替所有的记录锁,从而使锁的数目减少。

锁的升级,虽然降低了系统的资源开销,但要影响到系统的并发处理能力。数据库管理员如果在系统中发现锁的升级,就应当考虑调整系统或者应用程序。

阅读(554) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~