BLOCK

BLOCK是ORACLE下I/O的最小单位(换句话说,一次读出的数据至少是一个BLOCk)。
ORACLE的BLOCk是由一个或多个OS BLOCk组成的。
ORACLE的BLOCK是在创建TABLESPACE的时候就划分好的,之后分配使用。
ORACLE的初始化参数DB_BLOCK_SIZE就是指定BLOCK大小的。 
BLOCK的结构:HEADER, FREE SPACE , DATA SPACE。
HEADER部分和DATA SPACE从BLOCK的两头向中间扩展,中间未用的部分就是FREE SPACE。
有4个参数控制着BLOCK的分配:INITTRANS, MAXTRANS, PCTFREE, PCTUSED。
描述如下:BLOCK下包含数据允许最大的操作事务个数取决于BLOCK某种空间(TRANSACTION SLOT)的分配。允许的事务越多,需要分配越多的TRANS SLOT。INITTRANS和MAXTRANS就是规定这个TRANSACTION SLOT的。
PCTFREE和PCTUSED是规定DATA SPACE和FREE SPACE之间关系的:当一个空的BLOCK开始写入数据后,DATA SPACE部分越来越大,同时,FREE SPACE越来越小。当数据写入到一定程度时,FREE SPACE占全部空间等于PCTFREE时,这个BLOCK就不能再写入新的记录了。剩下的这部分(PCTFREE*DB_BLOCK_SIZE)空间用于给现有记录update使用。后续的insert会导致从FREE BLOCK列表中拿另外一个BLOCK完成。当BLOCK中记录通过delete时,BLOCK的DATA SPACE逐渐减少。
如果BLOCK此时是一个FULL BLOCK,当DATA SPACE降低置DB_BLOCK_SIZE*PCTUSED后,ORACLE就认为这个BLOCK是个FREE的BLOCK,就会放入FREE LIST,可以继续插入数据了。可见,PCTFREE和PCTUSED是两个水位线,用来限制FREE、USED两个空间分隔线的位置的。
有两种BLOCK的空间管理模式:AUTO和MANUL。
使用前者,ORACEL会自动管理INITTRANS, MAXTRANS, PCTFREE, PCTUSED这几个参数。
如下是创建一个AUTO管理的TABLESPACE:
CREATE TABLESPACE data02
DATAFILE '/u01/oradata/data02.dbf' SIZE 5M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 64K
SEGMENT SPACE MANAGEMENT AUTO;
———————————————————————————————————————————————         
区extent
EXTENTS是若干连续的BLOCKS,ORACLE每次给SEGMENT扩空间的时候,是以EXTENTS为单位的。
在建TABLE/INDEX时几个参数决定了EXTENTS的分配特性:INITIAL EXTENT(单位:K)、NEXT EXTENTS(单位:K)、PCT INCREASE、MIN EXTENTS(单位:个)、MAX EXTENTS(单位:个)。
基本过程是这样:当SEGMENT创建时,分配的第一个EXTENTS大小为INITIAL EXTENT参数指定的大小。
如果SEGMENT的空间不够,会分配第2个、第3个...EXTENTS。
第2个EXTENT的大小为NEXT EXTENTS,
第3个的大小为NEXT EXTENTS*(1+PCT INCREASE),
每次增加PCT INCREASE,以此类推。 
每个TABLESPACE都有一个FREE EXTENTS LIST。
当需要新的EXTENTS时,ORACLE会从这个LIST中取一个FREE EXTENT分配给需要的SEGMENT。
当SEGMENT释放空间时,空闲的EXTENTS会加入到这个LIST中以便后续使用。
段segment
CREATE TABLE/INDEX
的STORAGE字句,用来指定存储特性。如果没有指定,按照TABLESPACE的STORAGE属性来,如果TABLESPACE也没有指定STORAGE属性,则按照ORACLE的默认值来。
通常,一个TABLE对应一个SEGMENT(PARTITION的除外)。
一个SEGMENT只能在一个TABLESPACE内部。
对于PARTITIONED表每个PARTITION占一个SEGMENT,每个SEGMENT可以在不同的TABLESPACE中。

转载于:https://blog.51cto.com/huangxiaohui91/397144

Oracle学习(1)——BLOCK相关推荐

  1. Oracle 学习之建表、索引、同义词以及SQL优化

    Oracle 学习之建表.索引.同义词以及SQL优化: 一.Oracle 建表: 1.建表语句: --创建表 create table test ( id varchar2(200) primary ...

  2. OCI学习-Storage:Block Volume

    OCI学习-Storage:Block Volume OCI operates at the raw storage device level,通过iSCSI协议给固定大小的块标址来管理数据,所有的底 ...

  3. 怎样学好Oracle子查询,Oracle学习(六):子查询

    Oracle学习(6):子查询 子查询 为何要用子查询 SQL> --查询工资比SCOTT高的员工信息 SQL> --1. 知道SCOTT的工资 SQL> select sal fr ...

  4. oracle两表链接序列跳序,Oracle学习之 序列(Sequence)

    Oracle学习之 序列(Sequence) [Oracle学习]之 序列(Sequence) oracle文档:https://docs.oracle.com/cd/B28359_01/server ...

  5. Oracle学习网站

    Oracle学习网站 http://www.oracle-base.com 能弄懂这里面的文章,那oracle的基本功就非常扎实.(英) http://asktom.oracle.com/pls/ap ...

  6. 分享丨10年DBA老司机整理的Oracle学习路线图

    微思10年资深DBA吴老师呕心沥血的分享总结-Oracle学习路线图,看完没收获你打我. 学习Oracle的前提是:熟悉Linux操作系统.Unix操作系统. 学习方法 1.sql.pl/sql 作为 ...

  7. oracle db-link 分布式数据库网络配置协议错误,Oracle学习(18)【DBA向】:分布式数据库...

    数据物理上被存放在网络的多个节点上,逻辑上是一个整体. 分布式数据库的独立性 l分布数据的独立性指用户不必关心数据如何分割和存储,只需关心他需要什么数据. Oracle分布式RDBMS 本地操作 远程 ...

  8. oracle学习数据,oracle学习中的一些心得

    当前位置:我的异常网» 数据库 » oracle学习中的一些心得 oracle学习中的一些心得 www.myexceptions.net  网友分享于:2015-08-26  浏览:10次 oracl ...

  9. Oracle学习计划

    这两天,在网上参考了大量的文档,制定了Oracle学习的读书计划,共分三个阶段: 第一阶段: 目标: 系统学习.巩固基础. 书籍: (1)Oracle Concept, Oracle Performa ...

最新文章

  1. 速卖通代运营靠谱吗?招人做对比代运营,找代运营经验分享
  2. XSuperTooltip - Office 2007 Super Tooltip class
  3. 通过案例对SparkStreaming透彻理解-3
  4. python变量类型是动态的_【Python】python动态类型
  5. 教你做前端表单文本框必填
  6. 【英语学习】【WOTD】wherewithal 释义/词源/示例
  7. [SQL]UNPIVOT 多個欄位
  8. Asp.net WebPages框架运行原理浅析(转)
  9. mysql索引的创建和删除吗_MySQL索引的创建、删除和查看
  10. html5禁用浏览器下拉,禁止ios浏览器页面上下滚动 (橡皮筋效果)
  11. 数据仓库--事实表和维度表
  12. JDBC+MySQL入门增删改查案例
  13. 青龙面板--Nvjdc的搭建
  14. 林轩田《机器学习基石》(九)—— Linear regression
  15. 【ERROR】java java.lang.NoClassDefFoundError 的解决办法(全)
  16. 学术规范与论文写作 答案
  17. 怎么用js抽取身份证号中的年份?
  18. Android 平台下的原生 Markdown 解析器
  19. 0投资创业做什么比较好零投资创业项目
  20. 你们知道工控资料窝吗

热门文章

  1. PHP_SCREW 加密
  2. Gym - 100941G
  3. A Convolutional Neural Network for Modelling Sentences阅读笔记
  4. 雷林鹏分享:Ruby Web Services 应用 - SOAP4R
  5. Js组件layer的使用
  6. 记录idea maven项目打包部署web项目mapper扫描失败
  7. linux内核3.6版本及以下的bug引发的故障--cpu使用率100%
  8. jmeter获取mysql数据并作为请求参数使用
  9. Openjudge-计算概论(A)-求分数序列和
  10. XCTF_Web_新手练习区:robots