oracle表段区块的简述,oracle--存储结构_段 区 块-笔记

----------段概述  segment

----(在刚开始时,我理解为“段”就算是“表”,虽然有差误,但却有利理解oralce的存储结构)

数据段是一系列区间 , 在这个特定逻辑存储结构存储的数据都在一个表空间内 . 例如对于每一种数据库 对象 ( 表、索引 ) ,数据库都会分配一个或一段区间构成其对象的数据段。

数据段大致分为以下几种:

1.索引段

2.临时段

3.自动回滚( 撤销) 段

-----索引段

Oracle 数据库中每一个非分区索引都有一个对应的单一的索引段用来保存所有数据。

对于分区索引而言,每一个分区都有一个单一的索引段。

当执行Create Index 语句,Oracle 就会创建相应的索引段。

在创建索引的时候同样也可以指定相应的存储参数。设置这些参数将会直接影响到数据查询和存储的效率。

-----临时段

处理查询的时候,对于 SQL 语句的解析和执行阶段 Oracle 经常需要临时工作区。

例如,PGA中的排序区,当PGA排序区内存满时,便会使用该临时段。

以下语句有时会需要使用临时段:

l  CREATE INDEX

l  SELECT ... ORDER BY

l  SELECT DISTINCT ...

l  SELECT ... GROUP BY

l  SELECT ... UNION

l  SELECT ... INTERSECT

l  SELECT ... MINUS

----自动回滚段

自动回滚 ( 撤销 ) 段管理 是基于 undo 表空间的。(目前还是步了解,事物等概念)

-----段的管理方式

自动   Automatic Segmnet Space Management

表空间中的对象将自动管理其空闲空间,这将提高空闲空间管理性能(毫无疑问选择自动管理)

手动   Manual Segment Space Management

手动设置FreeLists、FreeList Groups、PctUsed、其它参数来控制如何分配、使用、重用段空间

-----Oracle表段中的高水位线High Water Mark(HWM)

在Oracle数据的存储中,可以把存储空间想象为一个水库,数据想象为水库中的水。

水库中的水的位置有一条线叫做水位线,在Oracle中,这条线被称为高水位线(High-warter mark, HWM)。

这个HWM是一个标记。

全表扫描通常要读出直到HWM标记的所有的属于该表数据库块,即使该表中没有任何数据。

当插入了数据以后,高水位线就会上涨,但是这里也有一个特性,就是如果你采用delete语句删除数据的话,数据

虽然被删除了,但是高水位线却没有降低,而是保持原样。

而select语句扫描的特性是,从表头扫描到HWM标记以下的数据。

(假如段分配了有10万个块,但是实际使用了2000个块,那么高水位线在2000个块的位置,那么如果你访问这个

表的时候,oracle只访问2000个块,如果在10万个块的位置,那么oracle访问表的时候会访问10万个块。)

这样极其浪费时间。

---那如何清除HWM呢?

不妨试试这个

cruncate  table  table_name;

------------------------------------------------------------------------------------------------------------------

----------区概述 extend

区间是由多个块的存储单元块(block)组成,一个区一般是8个块。当表或索引空间增长时,额外的区便加进来以满

足需求。

----区的管理方式:

数据字典:此乃8I以前的老物,不记。

本地管理:(可以做简单的模拟实验)

1.自动管理:

若为自动管理,则Oracle会按照递增算法来分配空间

2.统一管理:

若为统一管理,可以详细指定每个区间的大小

dba_extents这个视图可以看到哪些对象分配了多少区间

-----------------------------------------------------------------------------------------------------------------

----------数据块概述

Oracle存储数据的最小单位是数据块。Oracle管理数据库数据文件的存储空间被称为数据块。

标准的块大小是通过初始化参数DB_BLOCK_SIZE指定的,Oracle允许指定最多5种非标准块。

为了避免不必要的I/O开销,数据块大小应当是操作系统块大小的整数倍。(如我的Linux系统磁盘ext4文件系统的块大小为4K

,即我的oracle的块大小只能是4K的整数倍)

---数据块格式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值