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)、重新插入数据
分享到:
相关推荐
一个进程在对数据块执行add, remove, search, inspect, read 或者modify之前需要首先获得cache buffers chains latch. 有两条规则跟oracle访问数据块时的cache buffers chains相关. 每一个logical read都会造成一...
Cache Buffers Chain
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: * / * > < ...
- latch是一种Oracle低级别的内存保护机制,用于序列化对于非常短时间的内存结构的并发访问...- latch可以被共享(从Oracle 8.0开始),比如获取cache buffers chains latch用于检查buffer chain 。 latch是一个lock。
协议缓冲区 3 proto3 (PRERELEASE) 的一个水龙头。 当前支持的编译器: C++(捆绑) Python 去 安装 这是一个 PRERELEASE,所以命令更加冗长,以确保您知道自己在做什么。 添加水龙头: ...
反序列化:Protocol buffers 反序列化 需要转换到16进制,一键反序列化,有问题可以私信我
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",...
protobuf-c :Protocol Buffers的C语言实现
Protocol Buffers What is it? Protocol Buffers are a way of encoding structured data in an efficient yet extensible format. Google uses Protocol Buffers for almost all of its internal RPC protocols and...
Google Protocol Buffers 在 c# 中的应用
Protocol Buffers 2.4.1 jar
google Protocol Buffers
Also, we will introduce the concept of constant buffers, and explain how you can use buffers to speed up processing by minimizing bandwidth usage. The purpose of this tutorial is to modify the ...
中文翻译Google Protocol Buffers中文教程中文翻译Google Protocol Buffers中文教程中文翻译Google Protocol Buffers中文教程中文翻译Google Protocol Buffers中文教程
协议缓冲区 + Swift 使用 Protocol Buffers 和 Swift 进行概念验证 在制品 在制品 在制品
第五章:Buffers(缓冲) 第六章:ChannelHandler 第七章:编解码器Codec 第八章:附带的ChannelHandler和Codec 第九章:引导Netty应用程序 第十章:单元测试代码 第十一章:WebSocket 第十二章:SPDY 第十三章:通过...
google protocol buffers 官网中文教程