`

Wait Event: cache buffers chains

阅读更多

cache buffers chains是相对比较常见的冲突事件,绝大部分的cache buffers chains是SQL语句访问过多的内存引起,由抵效的SQL引起。个别情况下由于热点访问引起。

简单判断SQL是否访问了过多的内存访问,可以通过简单的看访问返回了多少条记录,经过了多少次buffer gets。一般来说,对于单表查询,获得一条记录不应该超过20个Block gets,而对于Join查询,则不应该超过100个buffer gets。

对于热点块,则可以以以下简单的方式判断:

如果热点正在发生,则只要简单的把wait event的p1raw取出来就可以,看看大家是否在访问相同的latch address。如果总是相同,则是热点,如果不同,则不是热点。

select p1raw from v$session_wait where event_name=’latch: cache buffers chains’;

 

如果是事后判断,则可以通过v$latch_children来间接的判断。

select * from (

select addr, child#,gets,sleeps from v$latch_children

where name=’cache buffers chains’ order sleeps desc

) where rownum<50

 

 

 

如果出现的结果很不均匀,则表示为热点冲突。

可以通过hladdr访问x$BH来获得热点块

select dbarfile,dbablk,tch from x$bh where hladdr=<hladdr>

 

找到热点块之后,只有通过热点数据分布到不同数据块,来降低热点访问。

分布方式

(1)、pctfree

(2)、partition

(3)、重新插入数据



分享到:
评论

相关推荐

    cache buffers chain形成原因分析

    为了确保这种内存结构的一致性和正确性,Oracle引入了`cache buffers chains latch`机制。 #### Cache Buffers Chains Latch 机制 ##### 作用与原理 `Cache buffers chains latch`是一种用于锁定特定缓存缓冲链表...

    数据库中堵塞事件处理

    WHERE event = 'latch: cache buffers chains' ); ``` 这里以`latch: cache buffers chains`为例,它是一种常见的锁等待类型,通常与缓存块的访问有关。通过这种方式,我们可以快速定位到具体是哪些会话造成了这种...

    protobuf 使用详解

    1. 下载和安装 Protocol Buffers:可以从 Google 的下载页面上下载 Protocol Buffers 的最新版本,然后按照安装说明进行安装。 2. 编译 Protocol Buffers:使用 Visual Studio 打开 Protocol Buffers 的工程文件...

    Cache Buffers Chain

    Cache Buffers Chain

    基于ProtocolBuffers的配置下发接口适配与应用_寇阳.pdf

    基于Protocol Buffers的配置下发接口适配与应用 Protocol Buffers是Google公司开发的开源数据编码方式,具有诸多优势。该技术可以应用于网管配置下发接口,实现高效、可靠的数据交换。下面是基于Protocol Buffers的...

    oracle 圆桌会议交流文档 性能相关

    本文将探讨圆桌会议中讨论的一些关键问题,包括`cache buffers chains`等待事件、数据库共享内存段的释放问题以及`ORA-04031`错误,以及与这些相关联的解决方案。 首先,`cache buffers chains`等待事件通常与缓存...

    AWR中的时间模型

    例如,如果`latch: cache buffers chains`等待事件占据主导,说明可能存在缓存缓冲区链争用,影响了性能。而`CPU time`作为等待事件出现,表示Oracle进程在等待其他资源时,CPU并没有被有效利用。 通过对AWR中的...

    benchmarks:Protocol Buffers 和 Thrift 的基准测试

    Protocol Buffers 和 Thrift 的基准。如何运行基准测试克隆存储库: $ git clone $ cd benchmarks $ git submodule init $ git submodule update 按照此处的说明安装 Thrift 的依赖项: 构建并运行基准测试: $ ...

    spring-mvc-tutorial-protobuf:ProtocolBuffers + Spring MVC 4.1

    使用 ProtocolBuffers + Spring MVC 的示例应用程序 获取protobuf $ curl -v http://localhost:8080/person &gt; GET /person HTTP/1.1 &gt; User-Agent: curl/7.30.0 &gt; Host: localhost:8080 &gt; Accept: * / * &gt; &lt; ...

    linux内存中buffer与cache的区别

    这种机制主要包括两种类型:`buffers`和`cache`。虽然它们都属于内存缓存,但其功能和用途各有侧重。 #### `buffers`与`cache`的概念 - **buffers**:是指那些尚未写入磁盘的数据。简而言之,buffers是系统为磁盘I...

    Protocol Buffers for Objective C.zip

    在"Protocol Buffers for Objective C.zip"这个压缩包中,我们可以期待找到与在Objective-C中使用Protocol Buffers相关的资源,这可能包括库文件、示例代码、教程文档等。尽管具体的文件列表(sss)没有给出详细内容...

    homebrew-protobuf3:Protocol Buffers 3 的 Homebrew Tap [已弃用 - 使用官方公式]

    协议缓冲区 3 proto3 (PRERELEASE) 的一个水龙头。 当前支持的编译器: C++(捆绑) Python 去 安装 这是一个 PRERELEASE,所以命令更加冗长,以确保您知道自己在做什么。 添加水龙头: ...

    oracle监控.txt

    - **`cachebuffers chains`**: 如果 miss 数值较高,则可能表明 SGA 中的数据缓冲区不足或存在热点数据块。 - **`cachebuffers lru chain`**: 同样表示 SGA 中的数据缓冲区不足。 - **`shared pool`**: 关注共享...

    google-protobuf-dynamic:使用uPB和Google .proto解析器快速,完整地实现Perl protobuf

    Google :: ProtocolBuffers ::动态使用uPB和Google .proto解析器快速,完整地实现Perl protobuf用法示例$dynamic = Google::ProtocolBuffers::Dynamic -&gt; new;$dynamic -&gt; load_string( " person.proto " , &lt;&lt;...

    ndjson-aggregator:将 ndjson 输出聚合到一个 JSON 对象中,以给定的属性为键

    var aggregate = require ( 'ndjson-aggregator' )var lines = [ '{"name":"buffers/buffer-creation","config":{"type":"fast","len":10,"n":1024},"time":"5400.10125"}' , '{"name":"buffers/buffer-creation",...

    protocol buffers 官网中文教程

    Protocol Buffers是Google开发的一种数据序列化协议,用于结构化数据的序列化,可以视为一种跨平台、跨语言的数据交换格式。它允许开发者定义数据结构,然后生成代码以轻松地在各种数据流之间读写这些数据。Protocol...

    Linux操作系统中内存buffer和cache的区别.pdf

    - `used`: 总计分配给缓存(包括buffers和cache)使用的数量。 - `free`: 未被分配的内存。 - `shared`: 共享内存,通常系统不会用到。 - `buffers`: 系统分配但未被使用的buffers数量。 - `cached`: 系统分配...

Global site tag (gtag.js) - Google Analytics