ASSM和PCTUSED

Wesley13
• 阅读 715

相信很多人都知道,当使用了ASSM(auto segment space management),PCTUSED将不在有效。

但是,有多少人告诉你,为什么在ASSM中PCTUSED被忽略。

ASSM之前,Oracle使用freelist,freegroup来管理空闲的block。哪如何决定一个block是否可以加到freelist上?假设,如果block的空闲小于或等于PCTFREE,即从freelist上取消block,当做了一个delete或者update操作后,block的空闲比例大于20%,即又把该block加到freelist上,这样虽然可以最大化的使用block的空间,但是却加重了freelist的维护成本(频繁地从freelist上摘除和添加block,而且是排它的操作)。

这也就是为什么引入PCTUSED的原因,牺牲空间来换取维护freelist的效率。在block的空闲比例在PCTFREE和1-PCTUSED之间,有一个缓冲的空间。

ASSM抛弃了freelist管理空闲block的方法,换用了三级位图,使用extent的头块(不是每一个extent头块)来管理free block。这种设计,修改任一block空闲与否的状态,影响面非常小。频繁修改状态都不会再是问题,因此PCTUSED在ASSM下被忽略。

点赞
收藏
评论区
推荐文章
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
limit limit
2年前
Rust 包装 objc Block
Block简介使用objc开发App时,经常会使用到Block,这个语法糖是Clang(https://clang.llvm.org/)给C语言实现的一个拓展.Block
Wesley13 Wesley13
3年前
Oracle 统计表空间和对象历史增长量
最近7天内每天(某个)表空间的增长量colTS_NAMEfora15SELECTa.snap_id,a.rtime,c.tablespace_namets_name,round(a.tablespace_sizec.block_size/1024/1024/1024,
Stella981 Stella981
3年前
Ruby中的each collect map inject
说明:each——连续访问集合的所有元素collect—从集合中获得各个元素传递给block,block返回的结果生成新的集合。map——同collect。inject——遍历集合中的各个元素,将各个元素累积成返回一个值。arr\1,2,3\1)arr2arr.each{|elem
Stella981 Stella981
3年前
OC中block使用相关
代码块本质上是和其他变量类似。不同的是,代码块存储的数据是一个函数体。使用代码块是,你可以像调用其他标准函数一样,传入参数数,并得到返回值。脱字符(^)是块的语法标记。按照我们熟悉的参数语法规约所定义的返回值以及块的主体(也就是可以执行的代码)。下图是如何把块变量赋值给一个变量的语法讲解:!(http://static.oschina.net
Stella981 Stella981
3年前
Magento Block的几种调用方式
MagentoBlock的三种显示方式1。最常见的一种方式:在layout文件中配置,然后在.phtml模板文件中输出。<cms_page<referencename"content"<blocktype"cms/page"name"cms_page"</block</
Stella981 Stella981
3年前
IOS——objc_setAssociatedObject关联的使用
简单介绍一下iOS中关联的使用,建议在情非得已的情况下使用 //创建一个对象AnimalanimalAnimalallocinit;animalsetName:@"小明";//定义block/头文件中定义bl
Stella981 Stella981
3年前
Block的循环引用
在ios常见的循环引用中曾经提到过block:!(http://static.oschina.net/uploads/space/2016/0830/112327_c1yY_1463495.png)看看上面最基本的block循环应用,self包含block,block包含了self中的变量val,所以形成了循环应用,编译器给出了循环引用的警告,当
Wesley13 Wesley13
3年前
mysql之mysql数据在磁盘的储存方式
mysql的数据在磁盘上的存储:   数据块:       由多个磁盘block组成的块,存储引擎负责管理数据块。       磁盘是block块设备,数据在磁盘上的存放也是按照块存放的。        mysql读取表到内存的时候,也必许按照一块一块
Wesley13 Wesley13
3年前
PHP中的NOW()函数
是否有一个PHP函数以与MySQL函数NOW()相同的格式返回日期和时间?我知道如何使用date()做到这一点,但是我问是否有一个仅用于此的函数。例如,返回:2009120100:00:001楼使用此功能:functiongetDatetimeNow(){