[摘录]Oracle Wait Interface之Buffer busy waits事件

[摘录]Oracle Wait Interface之Buffer busy waits事件

ID:40490877

大小:31.94 KB

页数:10页

时间:2019-08-03

[摘录]Oracle Wait Interface之Buffer busy waits事件_第1页
[摘录]Oracle Wait Interface之Buffer busy waits事件_第2页
[摘录]Oracle Wait Interface之Buffer busy waits事件_第3页
[摘录]Oracle Wait Interface之Buffer busy waits事件_第4页
[摘录]Oracle Wait Interface之Buffer busy waits事件_第5页
资源描述:

《[摘录]Oracle Wait Interface之Buffer busy waits事件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、[摘录]OracleWaitInterface之Bufferbusywaits事件当进程需要存取SGA中的buffer的时候,它会依次执行如下步骤的操作:1.获得cachebufferschainslatch,遍历那条bufferchain直到找到需要的bufferheader2.根据需要进行的操作类型(读或写),它需要在bufferheader上获得一个共享或独占模式的bufferpin或者bufferlock3.若进程获得bufferheaderpin,它会释放获得的cachebufferschainslatch,然后执行对buffer

2、block的操作4.若进程无法获得bufferheaderpin,它就会在bufferbusywaits事件上等待进程之所以无法获得bufferheaderpin,是因为为了保证数据的一致性,同一时刻一个block只能被一个进程pin住进行存取,因此当一个进程需要存取buffercache中一个被其他进程使用的block的时候,这个进程就会产生对该block的bufferbusywaits事件。截至Oracle9i,bufferbusywaits事件的p1,p2,p3三个参数分别是file#,block#和id,分别表示等待的bufferb

3、lock所在的文件编号,块编号和具体的等待原因编号,到了Oracle10g,前两个参数没变,第3个参数变成了块类型编号,这一点可以通过查询v$event_name视图来进行验证:PHPcode:Oracle9iSQL>selectparameter1,parameter2,parameter3fromv$event_namewherename='bufferbusywaits';PARAMETER1PARAMETER2PARAMETER3----------------------------------------------------

4、--------------------file#block#idOracle10gPARAMETER1PARAMETER2PARAMETER3------------------------------------------------------------------------file#block#class#在诊断bufferbusywaits事件的过程中,获取如下信息会很有用:1.获取产生bufferbusywaits事件的等待原因编号,这可以通过查询该事件的p3参数值获得2.获取产生此事件的SQL语句,可以通过如下的查询获得

5、:selectsql_textfromv$sqlt1,v$sessiont2,v$session_waitt3wheret1.address=t2.sql_addressandt1.hash_value=t2.sql_hash_valueandt2.sid=t3.sidandt3.event='bufferbusywaits';3.获取等待的块的类型以及所在的segment,可以通过如下查询获得:select'SegmentHeader'class,a.segment_type,a.segment_name,a.partition_name

6、fromdba_segmentsa,v$session_waitbwherea.header_file=b.p1anda.header_block=b.p2andb.event='bufferbusywaits'unionselect'FreelistGroups'class,a.segment_type,a.segment_name,a.partition_namefromdba_segmentsa,v$session_waitbwherea.header_file=b.p1andb.p2betweena.header_block+1an

7、d(a.header_block+a.freelist_groups)anda.freelist_groups>1andb.event='bufferbusywaits'unionselecta.segment_type

8、

9、'block'class,a.segment_type,a.segment_name,a.partition_namefromdba_extentsa,v$session_waitbwherea.file_id=b.p1andb.p2betweena.block_idanda.block_id+a.blocks-1and

10、b.event='bufferbusywaits'andnotexists(select1fromdba_segmentswhereheader_file=b.p1andhead

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。