ITPub博客

首页 > 数据库 > Oracle > oracle体系结构

oracle体系结构

原创 Oracle 作者:我是好贱 时间:2015-07-17 15:45:04 0 删除 编辑
数据库中数据是如何存储的? 
逻辑存储结构主要用于描述在oracle内部是如何管理和组织数据的。
物理存储结构主要用于描述在操作系统中是如何组织和管理数据的。
oracle对逻辑存储和物理存储结构的管理是分别进行的,两者之间不直接影响。
---------------------------------------------------------------------------------------
数据块是oracle用来管理存储空间最基本的单元,也是最小的逻辑存储单位。oracle在进行数据的输入输出时,都以数据块为单位。一个oracle数据块由一个或多个操作系统块组成。
区extent由一系列连续的块组成。oracle在分配存储空间时都是以区为单位的。
段segment有多个区组成。对象的数据全部保存在它的段中。
段有很多种类型,不同类型的数据库对象拥有不同类型的段。每个段在初始创建时都会被分配一定数目的初始区。
表空间:是oracle将所有相关的逻辑结构和对象组合在一起的地方。

块、区、段、表空间之间的关系:块是一张纸白纸、多张白纸钉在一起组成了区,当用户需要记录数据时,每次发给用户的是一个本子,而不是一张白纸。我们在本子的每一页上记录数据,但本子全部写满用完了,就需要获得一个新的本子,写满数据的本子将放在一个文件袋中,这个袋子就是段,多个文件袋被放在一个文件柜中,这个柜子就是表空间。而整个数据库就是由多个文件柜组成。每个文件柜中存放的是某一特定类型应用的相关所有文件。

在oracle中,模式是指一组数据库对象的集合,它属于一个数据库用户。通常包含表、索引、视图、同义词、存储过程、触发器等数据库对象。

块的管理block:
块的标准大小由初始化参数db_block_size指定。标准块和非标准块。
块的内部结构:
块头部:包含了块的一般属性信息,块的物理地址,块所属的段的类型等。
表目录:如果块中存储的是某个表中的一行或多行记录,则在表目录中保存的是关于这个表的相关信息。
行目录:存储表中相关行的记录信息。
空闲空间:是块中尚未使用的存储空间。
行空间:是块中已经使用的空间。

块中必须保留多少空闲空间???
块的存储空间管理可以手工也可以自动管理。
手工管理块存储空间使用到两个存储参数:PCTFREE   和  PCTUSED
PCTFREE参数用于指定块中必须保留的最小空闲空间比例。
PCTFREE默认是10%, 较小的PCTFREE适合不经常进行修改的表。

PCTFREE设置的较小:块的空间被有效利用,存储同样大小的数据,需要的块数量减少,但带来的缺点是,如果对块中的记录进行频繁UPDATE操作,会使块中容量增大,原本一个块中可以存放的记录,就不得不存放在多个块中,于是发生了记录链接。于是乎查询的时候,降低了对表的查询速度。
PCTFREE设置的较大:浪费一部分块的存储空间,带来的好处就是update时操作速度快,因为不需要花时间去寻找新的块来容纳增大后的记录。可以避免记录链接。较大的PCTFREE适合频繁进行修改的表。

PCTUSED参数用于制定一个百分比,当块中已经使用的存储空间降低到这个百分比时,这个块才会被重新标记为可用状态。
当向一个块中插入数据时,插入的数据不能占用保留空闲空间。只有对块进行更新操作时,才可以使用保留空闲空间。










来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30352966/viewspace-1736350/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 单行函数
请登录后发表评论 登录
全部评论

注册时间:2015-07-17

  • 博文量
    7
  • 访问量
    4623