Oracle 表空间、段、区、块概述

文章目录

图示

修改中,请稍等。。。

  • 存在于 表空间
  • 的集合
  • 数据块 的集合
  • 数据块 会映射到 磁盘块
    在这里插入图片描述

以实体-关系图的形式绘制 Oracle 存储模型,逻辑结构在左,物理结构在右。
在这里插入图片描述

  • 有一个关系使用虚线绘制,表示段和数据文件的多对多关系。之所以使用虚线表示关系,是因为这种关系不应该存在。出色的关系工程师不应该允许多对多关系的存在。

表空间 tablespace

  • 表空间 tablespace 是 存储结构中的最高层结构。
  • 建立一个表空间的时候,需要指定存储的文件。表空间是可以跨物理存储的,但是表空间的下一级对象 - 数据段是不能指定存储在那个文件里的。
  • 要想让数据对象访问 IO 负载均衡,需要指定不同的数据对象在不同的表空间里。这也就是为什么将数据表和索引建立在不同的表空间的原因。
  • 表空间的创建:
主要表空间描述
SYSTEM系统表空间,用于存储内部表和数据字典等
SYSAUX系统辅助表空间,由 Oracle 自行维护
UNDO存在撤销信息的表空间
USERS建议用户使用的表空间
--查询系统表空间信息
SELECT * FROM dba_tablespaces;
SELECT * FROM user_tablespaces;

 
 

数据段 segment

  • 任何类型的数据库对象,本质上都是一种数据段。数据表、索引、回滚、聚集这些都是数据段的一种表现形式。
  • 数据段是在数据对象创建时就已经创建出来的,随着对象体积的增大,而不断分配多个 extents 进行管理。
--数据段类型
SELECT DISTINCT t.segment_type FROM dba_segments t;
--查询系统段信息
SELECT * FROM dba_segments;
SELECT * FROM user_segments;
--查询区、块信息
SELECT ds.owner,
       SUM(ds.bytes) / 1024 / 1024 "所占空间(单位: MB)",
       SUM(ds.blocks) 数据块,
       SUM(ds.extents) 分区
  FROM dba_segments ds
 WHERE ds.owner = 'SYS'
 GROUP BY ds.owner;

 
 

区 extent

  • 物理存储通常是 随机 的读写过程。即使在同一个文件里,我们也不能保证相同的一个信息是是存储在绝对连续的物理存储空间的。
  • 所以,Oracle 出现了 分区 extent 的概念:表示一系列连续的数据块集合。
SELECT * FROM dba_extents;
SELECT * FROM user_extents;

 
 

数据块 block

1. 作用
   (1) 屏蔽了不同 '操作系统(Windows、Linux、Unix)的差异',全部数据操作采用对 Oracle 块的操作
2. 特性
   (1) 数据块 'block' 是 Oracle '最小的存储单元',也是 '最小的 I/O 单元'
   (2) 目前有五种大小:2KB、4KB、8KB(默认)、16KB、32KB -- 必须是倍数增加
   (3) 不可更改,除非重新创建数据库       
3. 组成部分
   (1) 块头   
4. 常用命令
   (1) show parameter db_block_size; -- 数据块大小 8192 = 8 * 1024
   (2) show parameter db_file_multiblock_read_count; -- 一次从物理文件中读取数据块的数量    

 
 
select t.empno,
       dbms_rowid.rowid_relative_fno(rowid) file#,
       dbms_rowid.rowid_block_number(rowid) block#
  from scott.emp t;

 
 

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值