Enqueue 整理总结.docx

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Enqueue 整理总结

建议大家看看原文 文档区可以下到..《Wait.Interface.A.Practical.Guide.to.Performance.Diagnostics.and.Tuning》 这本书写的不错.当处理enqueue等待时,熟记这些要点:1 Enqueues 是应用到数据库对象的locks.与latch(应用于SGA内存)不同.2 Enqueues 是由应用程序发起,具有事务性.(具体参见下文)3 /pubtree/?node=1Oracle session 正在等候获取一个特定的enqueue. enqueue的名字和mode被记录在P1参数里.针对不同类型的enqueue竞争应采用不同的方式解决.4 一直到Oracle 9i,enqueue wait event 代表所有enqueue waits;从Oracle 10g开始enqueue waits被分类定义(下文详细介绍).What Is an Enqueue?一个enqueue是什么由具体环境决定. 如果它被看成是动词,则表示将一个lock请求置于一个队列的动作.如果被看成是名词,它表示一个特定的lock,比如TX事务enqueue.Enqueues 是一种非常精密的锁定机制,用来管理访问数据库共享资源,比如(objects, background jobs, and redo threads).Oracle使用enqueues出于两个目的: 第一,当enqueue为不兼容模式(mode)时,enqueues防止并发sessions共享数据库资源. 第二,当enqueue为兼容模式时,enqueues容许并发sessions共享数据库资源.当session A请求一个数据库对象上的锁资源时,如果被请求的锁模式为不兼容模式,且该数据库对象已经被另一个session 以不兼容模式锁持有,则session A将它的锁请求放置于一个队列里并且按顺序等待被唤起.这个事件被称为enqueue wait. Enqueue waits 除了包括buffer locks (discussed in the “Buffer Busy Waits” section), library cache locks, row cache locks, and PCM (Parallel Cache Management) locks,也是对各种local locks的等待.What Is an Enqueue Resource?An enqueue resource是由于受到一个enqueue lock的数据库资源.Oracle通过内部数组结构进行管理.通过X$KSQRS (kernel service enqueue resource) or V$RESOURCE 视图可以看到具体条目.SQL select * from v$resource;ADDR TY ID1 ID2-------- -- ---------- ----------6D304434 XR 4 06D304594 CF 0 06D3046F4 RT 1 06D30474C RS 25 16D304904 MR 3 06D30495C MR 4 06D3049B4 MR 5 06D304B24 MR 1 06D304B7C MR 2 06D304BD4 MR 201 06D305634 TA 6 1ADDR TY ID1 ID2-------- -- ---------- ----------6D305B5C PW 1 06D3069DC TS 3 1已选择13行。SQL根据以上查询输出,我们可以看到enqueue resource structure 由lock type和两个参数组成. Oracle用两个字符符号例如(TX, TM, TS, MR, RT, etc)表示lock type. ID1,ID2两个参数由于lock type的不同所以具有不同含义.具体可以参见Wait.Interface.A.Practical.Guide.to.Performance.Diagnostics.and.Tuning第六章 Enqueue部分 Table6-3.在Oracle10g之前,ID1和ID2对于不同类型lock的含义并未公开.在Oracle10g中可以通过如下查询轻松得到.col name for a20col parameter2 for a20col parameter3 for a20select name,parameter2,parameter3 from v$event_name/稍后在本文enqueue资源争用部分再对ID1与ID2作详细介绍.可以被lock manager并行锁的enqueue resou

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档