- 1、本文档共51页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
10.Oracle的Latch优化深入解析-盖国强解读
Oracle的Latch优化深入解析
几乎在所有关于Oracle latch机制介绍的图书上,你都可以看到如下描述:
Latch是一种低级串行锁机制,用来保护内存结构。
更进一步点的会说:
Latch机制会通过对内存位的置零或置1来持有或者释放Latch
又由于Latch的持有和释放时间都很短,所以一直以来我们都是在通过概念来学习和理解Latch,非常的不直观,再加上在Oracle10g以前,Oracle数据库通过一个名为Latch Free的等待事件来概括Latch竞争,更加造成理解和学习上的困难。
最近在一些案例的处理中,加深了对于Latch机制的理解,在这里和大家分享一下我的学习经历。
1. Latch相关的视图
和Latch紧密相关的视图主要有:v$latch和v$latch_children。
1.1 V$LATCH
使用如下语句可以获得V$LATCH父对象GV$LATCH的创建语句:
SELECT VIEW_DEFINITION FROM V$FIXED_VIEW_DEFINITION WHERE VIEW_NAME=GV$LATCH;
以下是该视图创建的项目语句:
select d.inst_id, d.kslldadr, la.latch#, d.kslldlvl, d.kslldnam,
d.kslldhsh, la.gets, la.misses, la.sleeps,
la.immediate_gets, la.immediate_misses, la.waiters_woken,
la.waits_holding_latch, la.spin_gets,
la.sleep1, la.sleep2, la.sleep3, la.sleep4, la.sleep5,
la.sleep6, la.sleep7, la.sleep8, la.sleep9, la.sleep10,
la.sleep11, la.wait_time
from x$kslld d,
(select kslltnum latch#, sum(kslltwgt) gets, sum(kslltwff) misses,
sum(kslltwsl) sleeps, sum(kslltngt) immediate_gets,
sum(kslltnfa) immediate_misses, sum(kslltwkc) waiters_woken,
sum(kslltwth) waits_holding_latch, sum(ksllthst0) spin_gets,
sum(ksllthst1) sleep1, sum(ksllthst2) sleep2, sum(ksllthst3) sleep3,
sum(ksllthst4) sleep4, sum(ksllthst5) sleep5, sum(ksllthst6) sleep6,
sum(ksllthst7) sleep7, sum(ksllthst8) sleep8, sum(ksllthst9) sleep9,
sum(ksllthst10) sleep10,sum(ksllthst11) sleep11, sum(kslltwtt) wait_time
from x$ksllt
group by kslltnum) la
where la.latch# = d.indx
由创建语句可以看出,该视图和两个底层X$结构有关,分别是X$KSLLD,X$KSLLT。
这两个X$对象名称及含义如下:
X$KSLLT [K]ernel [S]ervice [L]ock Management Latch statistics + Child latches
X$KSLLD [K]ernel [S]ervice [L]ock Management Latch [D]esc
文档评论(0)