ITPub博客

首页 > Linux操作系统 > Linux操作系统 > DB2锁问题

DB2锁问题

原创 Linux操作系统 作者:redhouser 时间:2011-05-27 15:53:40 0 删除 编辑

        对一个熟悉Oracle的人而言,了解到DB2的加锁机制(缺省CS隔离级别),会对DB2的并发性产生很多担忧。
        可能DB2通过提供许多参数(DB2_SKIPINSERTED、DB2_SKIPDELETED、DB2_EVALUNCOMMITTED)可以实现高并发,但增加了应用开发的复杂性。

1,读需要加锁,可能被更新阻塞;原因:无多版本(没有undo信息可以方便的构造多版本)
2,存在锁升级;原因:锁资源集中
3,锁类型与存取计划有关,即是否有索引、是否有谓词、当前系统内锁数量等,都会影响锁类型;原因:试图在锁粒度与资源(CPU、内存)使用之间平衡,依赖于执行计划

      相较而言,Oracle的锁设计显得非常精巧(可能不只是锁本身,可能与整体架构有关)
1,读不加锁,所需数据通过undo信息构造一致读块实现
2,行记录分布在物理行上,不存在锁升级问题(注,为了实现行上锁标记清理,有快速、延迟清理等级制)
3,锁类型与存取计划无关
4,为了保护内存结构,使用Latch保护,也有利于高并发

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/18922393/viewspace-696430/,如需转载,请注明出处,否则将追究法律责任。

下一篇: DUAL是真实的表吗
请登录后发表评论 登录
全部评论

注册时间:2011-05-26

  • 博文量
    211
  • 访问量
    825979