Chinaunix首页 | 论坛 | 博客
  • 博客访问: 279507
  • 博文数量: 48
  • 博客积分: 1255
  • 博客等级: 中尉
  • 技术积分: 486
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-01 18:28
文章分类

全部博文(48)

文章存档

2014年(10)

2012年(9)

2011年(17)

2010年(9)

2009年(3)

我的朋友

分类: Oracle

2010-12-14 14:35:51

数据库由一个或多个表空间构成。表空间(tablespace)是 Oracle 中的一个逻辑存储容器,位于存
储层次体系的顶层,包括一个或多个数据文件。这些文件可能是文件系统中的 cooked 文件、原始分区、ASM管理的数据库文件,或者是集群文件系统上的文件。
表空间
前面已经提到,表空间是一个容器,其中包含有段。每个段都只属于一个表空间。一个表空间中可能有多个段。一个给定段的所有区段都在与段相关联的表空间中。段 绝对不会跨越表空间边界。表空间本身可以有一个或多个相关的数据文件。表空间中给定段的一个区段完全包含在一个数据文件中。不过,段
可以有来自多个不同数据文件的区段。
表空间包含段
段(segment),这是表空间中主要的组织结构。段(segment)就是占用存储空间的数据库对象,如表、索引、回滚段等。创建表时,会创建一个表段。创建分区表时,则每个分区会创建一个段。
创建索引时,就会创建一个索引段,依此类推。占用存储空间的每一个对象最后都会存储在一个段中,此外还有回滚段(rollback segment)、临时段 ( temporary segment)、聚簇段 ( clustersegment)、索引段 ( index segment)等。
注意:上面有这样一句话:
“占用存储空间的每一个对象最后都会存储在一个段中”,这可能会把你搞糊涂。你会发现许多 CREATE 语句能创建多段的对象。之所以会产生困惑,原因是一条 CREATE 语句最后创建的对象可能包含 0 个、1 个或多个段!
例如,CREATE TABLE T ( x int primary key, yclob)就会创建 4 个段:一个是 TABLE T 的段,还有一个段对应索引(这个索引是为支持主键而创建的),另外还有两个 CLOB 段(一个 CLOB 段是 LOB 索引,另一个段是 LOB 数据本身)。
与之不同 ,CREATE TABLE T ( x int, y date ) cluster MY_CLUSTER 则不会创建任何段。第 10 章还会更深入地讨论这个概念。
段本身又由一个或多个区段组成
区段(extent)是文件中一个逻辑上连续分配的空间。区段的大小可能不同,可以是一个 Oracle 数据块,也可以大到 2 GB。
区段又进一步由块组成。
块(block)是 Oracle 中最小的空间分配单位。数据行、索引条目或临时排序结果就存储在块中。通常 Oracle 从磁盘读写的就是块。Oracle 中块的常见大小有 4 种:2 KB、4 KB、8KB 或 16 KB(尽管在某些情况下 32 KB 也是允许的;但是操作系统可能对最大大小有限制)

阅读(1404) | 评论(1) | 转发(0) |
0

上一篇:1个RMAN的shell脚本

下一篇:ubuntu下添加硬盘

给主人留下些什么吧!~~

chinaunix网友2010-12-15 15:25:04

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com