表空间

当一个用户被创建以后,随之就要为用户分配数据存储的空间,这在oracle中成为“表空间”(Tablespace). 在数据库中创建用户时,基于应用性能和管理的考虑,最好为不同的用户创建独立的表空间。 用于存储永久数据的表空间通常被称为永久表空间,用于存储临时数据的表空间通常被称为临时表空间

逻辑上看,数据块是oracle的最小IO单元,即写入读出内存是以oracle中的块为单位的,oracle中的块通常由多个操作系统的块组成(操作系统的块应该就是该操作系统上文件系统的块,一个操作系统的块由若干磁盘的块组成)。多个oracle的块组成区间,区间是oracle创建对象的最小空间分配单位,。多个分区组成段,段存在于表空间中,因此,表空间可以被看作一个容纳各种对象段(表段,索引段等)的容器。 表空间作为数据库中的逻辑存储单元,可以包含一个或者多个物理文件,因此,表空间也可以被看成文件组。oracle数据库就是由一系列的表空间组成。

表空间的管理,表空间的管理实际上是针对于区间的管理,分成两种,字典管理表空间技术,即,当创建或者删除对象时,Oracle的空间分配和回收是通过数据库中的数据字典表来记录和管理的,这种技术主要在8i以前; 字典管理技术存在很多碎片,严重影响数据库的性能。8i以后,采用的是本地管理表空间技术,即不再使用数据字典来记录Oracle表空间里面的使用情况,而是在每个表空间的数据文件的头部加入了一个位图区域,在其中记录每个区间的使用状况(数据文件还有空区间??---数据文件对应一张表,一个表可以包含若干个段,一个段有若干个区间,所以每个数据文件有若干个区间)。

System表空间是Oracle数据库最重要的表空间,在创建数据库时被最先创建,其中包含了数据库的元数据。

在10g开始,Oracle推出了大文件表空间BigFile和小文件表空间SmallFile。大文件表空间只能包含一个文件,但是文件最大可以达到4GB个数据块的大小,按照Oracle通常支持的不同数据块的大小(2kb,4kb,8,16,32kb), 大文件表空间的大小可以支持到8TB---128TB.

段空间

在oracle数据库内部,对象空间是以段的形式存在和管理的。段和表对应,当一个段被创建的时候,区间就分配给段,段的存储空间不足,还可以以区为单位不断扩展。在Oracle的存储管理中,以区间为单位分配给段,在段内的时候,是以oracle的块为单位进行使用和管理。在9i以前,段空间采取的是手工段空间管理方式,即有一个freelist记录可用的块,(当一个块的空间使用率达到80%,将不会再增加数据,剩下的20%用于行更新带来的空间扩展需求;当一个块的空间使用率低于40%,才能放入freelist中,可以继续放入数据)。采用freelist的方式,会出现freelist称为瓶颈(多个事务并发请求段头空间freelist自由表时),即使增加为多个freelist,也只是缓解,;所以在9i后,oracle推出了自动段空间管理方式,将自由表freelist用位图取代,去除了块从freelist的删除和添加,所有的块全部放在位图中,不再“满-删除,空加入”的机制,块的使用率显示在位图的状态(集中状态)中。并且如果位图可以支持二级,多级的位图架构。

在11g前,当创建一个实体对象时,比如表,数据库就为该对象创建段,为段分配空间,但是,这种状态在有些只创建表,不插入数据的情景下,会造成空间的浪费,所以在11g的时候,引入了延迟段空间创建技术,即:当创建对象时,只存储数据结构定义,并不创建数据段,直到有第一行记录插入时才动态创建分配段空间。这样就可以省去,数据库系统初始化时因创建大量表而消耗的时间和空间。

(手动段管理)高水位标记HWM, 一个段分成三部分,header block,used block(row data),unused block其中used block和unused block之间的分界线就是高水位标记HWM,当进行全表扫描的时候,会扫描到HWM下的所有数据块,即使used block中很多数据被删除了,全表扫描还是以HWM为准。当插入insert时,freelist中没有空闲块,HWM会向上移动,但是只会向上移动,不会自动收缩,即使delete大量数据,导致HWM下有很多空闲块。

(自动段管理)低高水位LHWM和高高水位HHWM, LHWM下都是格式化的块,HHWM上都是未格式化的块,两者之间可能格式化的块和未格式化的块同时存在,全表扫描的时候,会将HHWM下的所有块都扫描完。

oracle的存储结构的更多相关文章

  1. ORACLE数据库存储结构简介(转)

    首先,oracle数据库的存储结构可以分为逻辑存储结构和物理存储结构,对于这两种存储结构,oracle是分别进行管理的.   逻辑存储结构:oracle内部的组织和管理数据的方式.  物理存储结构:o ...

  2. Oracle 逻辑存储结构

    一.总述 逻辑存储结构是 Oracle 数据库存储结构的核心内容,对 Oracle 数据库的所有操作都会涉及逻辑存储结构.逻辑存储结构是从逻辑的角度分析数据库的组成,是对数据存储结构在逻辑概念上的划分 ...

  3. ORACLE管理存储结构之物理机构+逻辑结构【weber出品】

    一.数据库的存储结构有物理结构和逻辑结构组成的 物理结构:物理上,oracle是由一些操作系统文件组成的 SQL> select name from v$datafile; NAME ----- ...

  4. oracle逻辑存储结构

    oracle数据库管理系统有三个重要的概念:实例.数据库.数据库服务器.oracle数据库的存储结构可以分为逻辑存储结构和物理存储结构.逻辑存储结构用于描绘Oracle内部组织和管理数据的方式,而物理 ...

  5. ORACLE数据库存储结构

    一.数据块 Oracle对数据库数据文件中的存储空间进行管理的单位是数据块.数据块是数据库中最小的(逻辑)数据单位,是最小的I/O单位.与数据块对应的,所有数据在操作系统级的最小物理存储单位是字节.每 ...

  6. ORACLE物理存储结构

    1.查看数据库实例基本信息: SQL> SELECT DBID,NAME,CREATED,LOG_MODE,OPEN_MODE,FORCE_LOGGING,CURRENT_SCN,FLASHBA ...

  7. 学习笔记:oracle学习一:oracle11g体系结构之体系结构概述和逻辑存储结构

    目录 1.oracle 11g体系结构概述 1.1 三个重要概念 1.2 oracle数据库存储结构 2 逻辑存储结构 2.1 数据块(Data Blocks) 2.2 数据区(Extent) 2.3 ...

  8. Oracle 存储结构

    数据库是存储数据的容器,它的主要功能是保存和共享数据. oracle数据库的存储结构可以分为逻辑存储结构和物理存储结构,对于这两种存储结构,oracle是分别进行管理的. 逻辑存储结构:oracle内 ...

  9. ORALCE逻辑存储结构

    ORACLE逻辑存储结构块: 数据块 他是最基础的逻辑存储单元,数据以行的形式存储到我么的数据块中 区 :多个块的集合 并且区组成了物理的数据文件 段 :(表 索引 物化视图 物化视图日志 大对象 大 ...

随机推荐

  1. canvas调节视频颜色

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. hdu 1075 二分搜索

    还是写一下,二分搜索好了 这道题开数组比较坑... 二分,需要注意边界问题,例如:左闭右闭,左闭右开,否则查找不到or死循环 先上AC代码 #include<iostream> #incl ...

  3. PowerDesigner中导出设计说明文档

    点击下图的新建按钮,新建一个导出内容的模板 模板设计界面分为2栏,左边是可选的模板内容,右侧是模板,双击左侧条目会添加到右侧,最后生成的文件中就有此项内容. 已经添加到右侧的内容可以编辑,双击右侧的条 ...

  4. vs版本与.net framework 版本对应

    vs2002  .net framework 1.0 vs2003 版本号:7.x  .net framework 1.1   window server 2003 vs2005 版本号:8.x  . ...

  5. eclipse ee 装oepe(Oracle Enterprise Pack for Eclipse)插件

    eclipse j2ee 安装weblogic插件Oracle Enterprise Pack for Eclipse(oepe) eclipse j2ee已经集成了常见的几个服务器容器,比如tomc ...

  6. python错误集锦

    1.lt与list等同,不能作为变量名 2.中文路径名:os.path.normcase(filepath) 如果遇到 ascii码在路径某处不能转换, 那么 filepath.encode('gbk ...

  7. POJ 2739 Sum of Consecutive Prime Numbers 难度:0

    题目链接:http://poj.org/problem?id=2739 #include <cstdio> #include <cstring> using namespace ...

  8. 矩阵(matrix)

    我们定义一个矩阵的权值为这个矩阵四个角上的数值的最小值.现在小M有一个矩阵,他想在这个矩阵中寻找到一个权值最大的子矩阵,请你告诉他这个最大权值.(距形规模最大为2000*2000) 比赛 看到第二题那 ...

  9. 戴文的Linux内核专题:03驱动程序

    转自Linux中国 驱动程序是使内核能够沟通和操作硬件或协议(规则和标准)的小程序.没有驱动程序,内核不知道如何与硬件沟通或者处理协议(内核实际上先发送指令给BIOS,然后BIOS传给硬件). Lin ...

  10. High Performance Django

    构建高性能Django站点   性能 可用 伸缩 扩展 安全 build 1.审慎引入第三方库(是否活跃.是否带入query.是否容易缓存) 2.db:减少query次数 减少耗时query 减小返回 ...