科学网

 找回密码
  注册
buffer cache 中buffer状态
吕璐成 2014-3-13 17:24
x$bh :(buffer header)每一个buffer在这个表中都有一个列跟它对应。 它记录了数据块头信息,比如这个块被touch了多少次(tch字段),被touch的越多就表示这个块越抢手。 x$ksmsp是 shared pool中条目相关信息 state:数据块状态 0,FREE 一个buffer被清空之后,但是buffer cache的链的头部还是记录 ...
个人分类: SGA|2504 次阅读|没有评论
buffer cache内存结构剖析——CBC,LRU,MRU,检查点
吕璐成 2014-3-12 20:45
shared pool:基本结构是链。 buffer cache:同样是链。左边是链,右边是buffer buffer cache:包含的数据有free data,clean data,dirty data刚被修改的数据还没同步到dbf。 CBC:cache buffer chain。以地址的方式将所有buffer cache上的buffer链接起来。链上放着buffer的地址,即buffer header。根据block ...
个人分类: SGA|4117 次阅读|没有评论
如何设置shared pool和sga大小
吕璐成 2014-3-12 11:06
如果没有实现sql语句共享,也就是硬解析过多时,shared pool没有作用(需要先找library cache,再找free cache,找到合适的trunk后再挂到library cache上,非常耗费时间)。 如果shared pool很大,就会出现free的链、library cache的链也长,这样每次sql执行进来都会消耗很多时间来查找。如果此时再进来新的sql语句,就 ...
个人分类: SGA|3560 次阅读|没有评论
oracle段区块——buffer cache
吕璐成 2014-3-12 00:21
段 :可以视为表 区 :可以视为oracle向表分配空间的最小单位。是物理上连续的oracle块。 块 :放数据行,基本上一个块有多个行。所以块是oracle的最小操作单位,也就是IO的最小单位。每当读数据一行时,就会对整个块进行操作。如果读取这一块的其它行数据,会加快速度。 硬盘读取时间最耗时间的是寻道时间。 buff ...
个人分类: SGA|2639 次阅读|没有评论
shared pool内存组成及如何减少硬解析、解决4031错误
吕璐成 2014-3-11 16:13
library cache row chche free cache:内存块由链连接。如果需要内存空间,就去链上寻找,有合适大小的直接用,然后昂到library cache中。如果没有合适大小的,就对大的进行分割,把小的放到小块(trunk)的链上,把用到的放到library cache中。 如果,这些小块越堆积越多(很多小空间组成空间很大),就会导致在下一个 ...
个人分类: SGA|3755 次阅读|没有评论
shared pool 对sql语句的硬解析 软解析
吕璐成 2014-3-6 16:42
sql语句执行过程 1.解析parse 2.执行exec 3.获取fetch shared pool:组成 free :自由空间 library cache: 放的是sql的执行计划 row cache : 数据字典信息的缓存位置 harse count(hard)硬解析: 如果一条sql进来没有在library cache中没有缓存就需要硬解析。这时候oracle需要选择最高效、最 ...
个人分类: SGA|3226 次阅读|没有评论
SQL执行过程解析
吕璐成 2014-3-5 17:26
客户端发出SQL查询 SQL语句通过网络到达oracle实例 server process 接收sql语句 1.server process去共享池查看是否有缓存,如果有有的话就执行已经缓存的执行计划,如此执行节省时间。同样查数据时也会去buffer cache中找数据,如果找到就直接返回给用户。你看多节省时间呀?(此为 找) 2.如果没找到缓存记录呢?就 ...
个人分类: SGA|2921 次阅读|没有评论

本页有 1 篇博文因作者的隐私设置或未通过审核而隐藏

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-1 08:54

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部