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)、重新插入数据
分享到:
相关推荐
为了确保这种内存结构的一致性和正确性,Oracle引入了`cache buffers chains latch`机制。 #### Cache Buffers Chains Latch 机制 ##### 作用与原理 `Cache buffers chains latch`是一种用于锁定特定缓存缓冲链表...
WHERE event = 'latch: cache buffers chains' ); ``` 这里以`latch: cache buffers chains`为例,它是一种常见的锁等待类型,通常与缓存块的访问有关。通过这种方式,我们可以快速定位到具体是哪些会话造成了这种...
1. 下载和安装 Protocol Buffers:可以从 Google 的下载页面上下载 Protocol Buffers 的最新版本,然后按照安装说明进行安装。 2. 编译 Protocol Buffers:使用 Visual Studio 打开 Protocol Buffers 的工程文件...
Cache Buffers Chain
基于Protocol Buffers的配置下发接口适配与应用 Protocol Buffers是Google公司开发的开源数据编码方式,具有诸多优势。该技术可以应用于网管配置下发接口,实现高效、可靠的数据交换。下面是基于Protocol Buffers的...
本文将探讨圆桌会议中讨论的一些关键问题,包括`cache buffers chains`等待事件、数据库共享内存段的释放问题以及`ORA-04031`错误,以及与这些相关联的解决方案。 首先,`cache buffers chains`等待事件通常与缓存...
例如,如果`latch: cache buffers chains`等待事件占据主导,说明可能存在缓存缓冲区链争用,影响了性能。而`CPU time`作为等待事件出现,表示Oracle进程在等待其他资源时,CPU并没有被有效利用。 通过对AWR中的...
Protocol Buffers 和 Thrift 的基准。如何运行基准测试克隆存储库: $ git clone $ cd benchmarks $ git submodule init $ git submodule update 按照此处的说明安装 Thrift 的依赖项: 构建并运行基准测试: $ ...
使用 ProtocolBuffers + Spring MVC 的示例应用程序 获取protobuf $ curl -v http://localhost:8080/person > GET /person HTTP/1.1 > User-Agent: curl/7.30.0 > Host: localhost:8080 > Accept: * / * > < ...
这种机制主要包括两种类型:`buffers`和`cache`。虽然它们都属于内存缓存,但其功能和用途各有侧重。 #### `buffers`与`cache`的概念 - **buffers**:是指那些尚未写入磁盘的数据。简而言之,buffers是系统为磁盘I...
在"Protocol Buffers for Objective C.zip"这个压缩包中,我们可以期待找到与在Objective-C中使用Protocol Buffers相关的资源,这可能包括库文件、示例代码、教程文档等。尽管具体的文件列表(sss)没有给出详细内容...
协议缓冲区 3 proto3 (PRERELEASE) 的一个水龙头。 当前支持的编译器: C++(捆绑) Python 去 安装 这是一个 PRERELEASE,所以命令更加冗长,以确保您知道自己在做什么。 添加水龙头: ...
- **`cachebuffers chains`**: 如果 miss 数值较高,则可能表明 SGA 中的数据缓冲区不足或存在热点数据块。 - **`cachebuffers lru chain`**: 同样表示 SGA 中的数据缓冲区不足。 - **`shared pool`**: 关注共享...
Google :: ProtocolBuffers ::动态使用uPB和Google .proto解析器快速,完整地实现Perl protobuf用法示例$dynamic = Google::ProtocolBuffers::Dynamic -> new;$dynamic -> load_string( " person.proto " , <<...
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是Google开发的一种数据序列化协议,用于结构化数据的序列化,可以视为一种跨平台、跨语言的数据交换格式。它允许开发者定义数据结构,然后生成代码以轻松地在各种数据流之间读写这些数据。Protocol...
- `used`: 总计分配给缓存(包括buffers和cache)使用的数量。 - `free`: 未被分配的内存。 - `shared`: 共享内存,通常系统不会用到。 - `buffers`: 系统分配但未被使用的buffers数量。 - `cached`: 系统分配...