精华内容
下载资源
问答
  • 属于oracle的逻辑结构
    千次阅读
    2021-05-02 02:05:40

    ♣答案部分

    Oracle中逻辑结构包括表空间(TABLESPACE)、段(SEGMENT)、区(EXTENT)和块(BLOCK)。数据库由表空间构成,而表空间又是由段构成,而段又是由区构成,而区又是由Oracle块构成,即块→区→段→表空间→数据库。

    逻辑结构图简单如下图所示:

    eb5cf45393815bc3e18b7a816bbdf4d8.png

    图3-4Oracle逻辑结构图

    Oracle数据库在逻辑上将数据存储在表空间中,在物理上将数据存储在数据文件中。

    ①数据库(Database):一个数据库是由多个表空间组成,也可以说多个不同类型的表空间组成了一个数据库。

    ②表空间(Tablespace):数据库中的基本逻辑结构,一系列数据文件的集合。一个表空间可以包括多个数据文件,这多个数据文件可以分布在不同的磁盘上,这样可以提高表空间的I/O请求。数据库的数据作为一个整体存储在构成数据库每一个表空间的数据文件中。一个Oracle数据库必须至少有两个表空间(必需的SYSTEM和SYSAUX表空间),每个表空间包含一个或多个数据文件。临时文件是一个属于临时表空间的文件,它是使用TEMPFILE选项创建的。临时表空间不能包含永久数据库对象(例如表),并且通常用于排序。表空间可以分为大文件表空间和小文件表空间,参考【真题154、什么是大文件表空间(BIGFILE TABLESPACE)?】。

    ③段(Segment):对象在数据库中占用的空间。当在数据库中创建表或索引时,系统就会创建对应的段。段是由多个可以不连续的区组成,所以段是可以跨数据文件的。当段空间不足时,系统将以区为单位为段分配空间。段按照类型可以分为数据段、索引段、Undo段、临时段等,其中:

    l数据段:每个非集群的、不按索引组织的表都有一个数据段,但外部表、全局临时表和分区表除外,这些表中的每个表都有一个或多个段。表中的所有数据都存储在相应数据段的区中。对于分区表,每个分区都有一个数据段。每个集群也都有一个数据段。集群中每个表的数据都存储在集群的数据段中。

    l索引段:每个索引都有一个索引段,存储其所有数据。对于分区索引,每个分区都有一个索引段。

    lUndo段:Oracle为每个数据库实例创建一个Undo表空间,该表空间包含大量用于临时存储还原信息的Undo段。Undo段中的信息用于生成读一致性数据库信息,并且在数据库恢复过程中,用于为用户回滚未提交的事务处理。

    l临时段:临时段是在需要临时工作区来执行SQL语句时,由Oracle数据库创建的。在语句执行完成后,临时段的区将返回到实例以备将来使用。Oracle会为每个用户指定一个默认临时表空间,或指定一个在数据库范围内使用的默认临时表空间。

    ④区(Extent):为数据一次性预留的一个较大的存储空间。区是一个空间分配单位,当数据库对象空间不足时,通常会以区为单位进行分配空间。区是由多个连续的数据块组成,由此可知区是不能跨数据文件的。

    ⑤块(Block):Oracle最基本的存储单位,在建立数据库的时候指定DB_BLOCK_SIZE值,该参数表示数据库标准数据块的大小,默认大小为8K,它是数据库一次标准I/O的大小,一个标准的Oracle数据块是由连续的操作系统数据块组成的。1个8K的数据块理论上最多可存储700多行,所以,块越大,在相同情况下存储的行就越多,而Oracle是以块为单位进行访问的,那么产生的逻辑读就越小。需要注意的是,块越大,不同的会话访问不同的数据落在同一个块的几率就增加了,这就容易产生热点块竞争,所以,在OLAP中,可以适当将块调大。

    真题1、Note the following structures in your database server:

    1、Extents

    2、OS Blocks

    3、Tablespace

    4、Segments

    5、Oracle Data Block

    Which option has the correct arrangement of these structures FROM the smallest to the largest?()

    A、2,5,1,4,3

    B、1,2,3,4,5

    C、5,2,1,3,4

    D、2,1,5,4,3

    答案:A。

    Oracle中逻辑结构包括表空间、段、区和块。说明一下:数据库由表空间构成,而表空间又是由段构成,而段又是由区构成,而区又是由Oracle块构成的这样的一种结构,可以提高数据库的效率,块→区→段→表空间→数据库。题目问的是从小到大的排序哪个是正确的。

    本题中,对于选项A,OS BLOCKS->ORACLE DATA BLOCK->EXTENTS->SEGMENTS->TABLESPACE,排序正确。所以,选项A正确。

    对于选项B,Extents不是最小的,排除掉。所以,选项B错误。

    对于选项C,Oracle数据块也不是最小的,排除掉。所以,选项C错误。

    对于选项D,块组成区,而不是区组成块。所以,选项D错误。

    所以,本题的答案为A。

    真题2、下面有关TABLESPACE和DATAFILE之间的关系的描述中,说法错误的是()

    A、一个TABLESPACE可以有一个或多个DATAFILE

    B、每个DATAFILE只能在一个TABLESPACE内

    C、TABLE中的数据,通过HASH算法分布在TABLESPACE中的各个DATAFILE中

    D、DATAFILE是逻辑上的概念,TABLESPACE则在物理上储存了数据库的种种对象

    答案:D。

    关于数据库的逻辑结构和物理结构,表空间(TABLESPACE)是逻辑上的概念,数据文件(DATAFILE)是物理上的概念。一个表空间可以由一个或多个数据文件组成,一个数据文件不能跨越多个表空间。TABLE中的数据,通过HASH算法分布在表空间中的各个数据文件中。表空间是Oracle数据库中最大的逻辑单位与存储空间单位,数据库系统通过表空间为数据库对象分配空间。

    本题中,对于选项A,一个TABLESPACE可以有一个或多个DATAFILE,说法是正确的。所以,选项A错误。

    对于选项B,每个DATAFILE只能在一个TABLESPACE内,说法正确。所以,选项B错误。

    对于选项C,TABLE中的数据,通过HASH算法分布在TABLESPACE中的各个DATAFILE中,说法正确。所以,选项C错误。

    对于选项D,TABLESPACE是逻辑上的概念,DATAFILE是物理上的概念,选项中正好说反了。所以,选项D正确。

    所以,本题的答案为D。

    真题3、DATA BLOCK,EXTENT和SEGMENT的区别是什么?

    答案:DATA BLOCK是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的DATA BLOCK就组成了EXTENT。一个数据库对象拥有的所有EXTENT被称为该对象的SEGMENT。

    真题4、在Oracle中,数据块、Redo日志块及控制文件数据块的大小分别是多少?如何查询?

    答案:这3种数据块分别介绍如下:

    ① 数据块(Data Block),是读写数据文件的最小单位,默认是8KB,可以通过SQL语句“SELECT FILE#,NAME,BLOCK_SIZE FROM V$DATAFILE;”查询,单位为BYTE。

    ② Redo日志数据块(Redo Log Block),大小一般等于操作系统的系统块的大小,一般为512或4096,可以通过SQL语句“SELECT BLOCKSIZE FROM V$LOG;”或“SELECT LEBSZ FROM X$KCCLE;”查询,单位为BYTE。

    ③ 控制文件数据块(Control File Block),默认为16KB,可以通过SQL语句“SELECT BLOCK_SIZE FROM V$CONTROLFILE;”查询,单位为BYTE。

    更多相关内容
  • oracle逻辑结构分析

    2021-01-19 23:13:52
    oracle逻辑结构包括表空间(tablespace),段(segment),区(extent),数据块(data block) oracle数据库在逻辑上是由多个表间组成的,表空间中存储的对象叫段,比如数据段,索引段,和回退段。段由区组成,区是磁盘...
  • Oracle逻辑结构、物理结构与实例.
  • Oracle体系结构(15)—— Oracle 数据库的逻辑结构 数据库的物理结构定义了数据库包含的实际存在的数据文件。而数据文件中的数据之间存在一定的逻辑关系,所有数据之间的对应关系称为数据库的逻辑结构。数据库从...

    Oracle体系结构(15)—— Oracle 数据库的逻辑结构

    数据库的物理结构定义了数据库包含的实际存在的数据文件。而数据文件中的数据之间存在一定的逻辑关系,所有数据之间的对应关系称为数据库的逻辑结构。数据库从逻辑上可以划分为以下几个层次:

    (1)表空间(Tablespace):Oracle 数据库逻辑上由一个或多个表空间组成。表空间物理上由一个或多个数据文件构成。
    (2)段(Segment):一个或多个段组成一个表空间。通过为各种不同的数据库对象分配不同的段,来保存数据。比如:student 表中的所有数据会存放在 student 段中。
    (3)区(Extent):由一个或多个区组成一个段。
    (4)数据块(Data Block):若干个连续存储的数据块组成一个区。数据块是数据库 I/O 最小的单位。数据块的大小是操作系统块大小的整数倍。

    Oracle 数据库的逻辑结构与物理结构的对应关系如下图所示:

    在这里插入图片描述

    一、表空间(Tablespace)

    Oracle 数据库是由若干个表空间构成的。任何数据库对象在存储时都必须存储在某个表空间中。表空间对应若干个磁盘文件,即表空间是由一个或多个磁盘文件构成的。表空间相当于操作系统中的文件夹,也是数据库逻辑结构与物理文件之间的一个映射。表空间的大小等于所有从属于它的数据文件大小的总和。Oracle 数据库一般包含以下几种类型的表空间:

    (1)系统表空间(system tablespace):系统表空间中存放诸如表空间名称、表空间所含的数据文件等数据库管理所需的信息。系统表空间必须在任何时候都处于可用状态,也是数据库运行的必要条件。因此,系统表空间不能脱机。系统表空间包括数据字典、存储过程、触发器和系统回滚段。
    (2)SYSAUX 表空间(SYSAUX tablespace):充当 SYSTEM 的辅助表空间,主要存储除数据字典以外的其他对象。以降低 SYSTEM 表空间的负荷。
    (3)临时表空间(temp tablespace):用于存储 Oracle 数据库运行期间所产生的临时数据。一个数据库可以创建多个临时表空间。当数据库关闭后,临时表空间中所有数据将全部被清除。
    (4)undo 空间(undo tablespace):用来保存事务中的 DML 语句的 undo 信息,保存的是数据在被修改之前的值。undo 表空间用于:事务的回滚;实例恢复(回滚);一致性读时需要构造 CR 块。

    一个数据库一般包含以下几个表空间:SYSTEM 表空间、临时表空间(用于存放临时数据)、UNDO(存放 undo 信息)、用户自定义的表空间(存放用户数据)。

    查询数据库包含的表空间信息:

    SQL> SELECT name FROM V$TABLESPACE;
    
    NAME
    ------------------------------
    SYSTEM
    SYSAUX
    UNDOTBS1
    USERS
    TEMP
    UNDOTBS2
    TS001
    TMP002
    
    8 rows selected.
    

    查看表空间对应的数据文件:

     SQL> SELECT TABLESPACE_NAME,FILE_NAME FROM DBA_DATA_FILES;
    
    TABLESPACE_NAME 	       FILE_NAME
    ------------------------------ --------------------------------------------------------
    USERS			       +DATA/orcl/datafile/users.259.1070471891
    UNDOTBS1		       +DATA/orcl/datafile/undotbs1.258.1070471891
    SYSAUX			       +DATA/orcl/datafile/sysaux.257.1070471889
    SYSTEM			       +DATA/orcl/datafile/system.256.1070471889
    UNDOTBS2		       +DATA/orcl/datafile/undotbs2.264.1070472143
    TS001			       +DATA/orcl/datafile/ts1_001.dbf
    TMP002			       +DATA/orcl/datafile/tmp002.dbf
    TS001			       +DATA/orcl/datafile/ts1_002.dbf
    
    8 rows selected.
    

    二、 段(Segment)

    当建立数据对象(表、索引、簇等)时,Oracle 会自动给这些数据对象分配相应的存储空间,以存放它们的数据信息,这些为数据对象所分配的存储空间被称为段。

    一个段只能存放在一个表空间中,但是可分布在属于这个表空间中的多个数据文件中。段由多个区组成,用于保存特定的数据库对象,每种数据对象都具有相应的段。段可分为以下几种类型:
    (1)数据段:也称为表段,当创建一张表时,系统自动创建一个以该表的名字命名的数据段。
    (2)索引段:包含索引信息。创建索引时,系统自动创建一个以该索引的名字命名的索引段。
    (3)回滚段:当一个事务开启(DML 会自动开启事务)时,系统会自动为之分配回滚段。当修改表中数据的时候,该数据修改前的值会存放在回滚段中,当用户回滚(rollback)事务时,Oracle 将利用回滚段中保存的数据来恢复到原来的值。提交事务之后,系统会自动释放相应回滚段的数据。
    (4)临时段:是 Oracle 在运行过程中自行创建的段。当一个 SQL 语句需要临时工作区时,由 Oracle 建立临时段。一旦语句执行完毕,临时段将自动消除。
    (5)LOB 段:如果表中含有 CLOB 和 BLOB 等大型对象类型数据时,系统将创建 LOB 段以存储相应的大型对象数据。

    查看 scott 用户所有的段及类型:

    SQL> select segment_name,segment_type,owner 
         from dba_segments 
         where owner='SCOTT';
    
    SEGMENT_NAME				  SEGMENT_TYPE	     OWNER
    ------------------------------------- ------------------ ------------------------------
    PK_EMP						  INDEX 	     SCOTT
    PK_DEPT 					  INDEX 	     SCOTT
    E02							  TABLE 	     SCOTT
    E01							  TABLE 	     SCOTT
    SALGRADE					  TABLE 	     SCOTT
    EMP							  TABLE 	     SCOTT
    DEPT						  TABLE 	     SCOTT
    
    7 rows selected.
    

    三、区(extent)

    区是由一组连续的数据块(data block)构成的数据库逻辑存储分配单位。用于保存特定数据类型的数据,区不可跨越多个数据文件。

    当用户创建表时,Oracle 为此表的数据段分配一个包含若干数据块的初始区(initial extent)。如果一个段的初始区中的数据块已满,且有新数据插入时,Oracle 自动为这个段分配一个增量区(incremental extent)。为了管理的需要,每个段的段头(header block)包含一个记录此段所有区(extent)的目录。

    段的定义中包含了区(extent)的存储参数,存储参数适用于各种类型的段。该参数控制 Oracle 如何为段分配可用空间。如:在 CREATE TABLE 语句中使用 STORAGE 子句设定存储参数,决定创建表时为段分配多少初始空间,或限定一个表最多可以包含多少区。如果没有指定存储参数,创建表时使用所在表空间的默认存储参数。

    四、数据块(data block)

    数据块是 Oracle 逻辑存储结构中最小的一个逻辑单元,也是执行数据库输入输出操作的最小存储单元。
    Oracle 数据块的大小是操作系统数据块的整数倍。
    Oracle 数据库支持同一个数据库中使用多种大小的块,初始化参数 DB_BLOCK_SIZE 确定数据块的标准大小,与标准块大小不同的块就是非标准块。

    一个 Oracle block 由三个部分组成,分别是:数据块头、自由空间、实际数据。

    查看数据块大小:

    SQL> show parameter db_block_size
    
    NAME				     TYPE	 VALUE
    ------------------------------------ ----------- ------------------------------
    db_block_size			     integer	 8192
    
    SQL> select name,value 
         from v$parameter 
         where name = 'db_block_size';
    
    NAME		     VALUE
    -------------------- ------------------------------
    db_block_size	     8192
    
    展开全文
  • oracle 逻辑结构

    2012-11-20 17:58:59
    帮你 轻松理解 oracle 逻辑结构 , 有图,有说明,让你对oracle的理解更加深入迁出。
  • oracle的体系逻辑结构  oracle 数据库的逻辑结构是:  (1)表空间(TABLESPACE) ,包括:系统表空间、回滚段表空间、临时表空间、用户表空间(除用户表空间外其他三张表空间有各自特定的用途,不可随意更改和...
  • Oracle逻辑存储结构培训
  • Oracle逻辑运算符也是用在SQL语句中必不可少的因素,一共有三个 逻辑运算符 意义 and 双值运算符,如果左右两个条件都为真,则得到的值就为真 or 双值运算符,只要左右两个条件有一个为真,则...
  • Oracle物理和逻辑结构

    千次阅读 2018-01-10 13:30:46
    了解Oracle详细安装流程后,我们很有必要学习下Oracle其基本物理及逻辑结构,从而理解其整体组成管理层次,为后续深入学习打下基础。 一、Oracle物理结构: 1,操作系统数据块 操作系统数据

    古之成大事者,不惟有超士之才,亦有坚忍不拔之志。——苏轼

    漫漫人生路,浊浊人间情。学习是一个艰辛的过程,学习Oracle亦是如此,而经历过切切持续学习,不难成为其中高手。

    了解Oracle详细安装流程后,我们很有必要学习下Oracle其基本物理及逻辑结构,从而理解其整体组成管理层次,为后续深入学习打下基础。

    一、Oracle物理结构:

    1,操作系统数据块

    操作系统数据块是文件系统所使用的最小分配单元。数据库就是搭建在操作系统数据块基础上。

    2,数据文件

    保存Oracle数据的操作操作系统文件,用户可以通过登录操作系统浏览到数据库的数据文件。数据库创建时会创建对应数据文件,数据文件中保存着数据字典和用户数据等信息。

    二、Oracle逻辑结构:

    1,Oracle数据块

    数据库内部I/O最小单位,数据库的最小逻辑单元。据库需要读取数据时总是无法只读取一条记录,而是必须读取整个数据块。

    2,区

    数据库中若干数据块的集合,数据库中空间以区进行扩展。

    3,段

    段是存储的对象,例如一张表或一个索引,都对应一个段。段由若干区组成。

    4,表空间

    表空间由一个或者多个数据文件组成。表空间数据文件中存在一个或者多个段。SYSTEM表空间包含数据字典,是数据库的大脑,没有SYSTEM表空间,数据库就无法运转。

    Oracle物理及逻辑结构对应图

    三、对应关系

    每个数据库都必须由一个或多个表空间组成。(一对多关系)

    每个表空间都必须由一个或多个数据文件(data file)组成。(一对多关系)

    每个表空间都可以包含一个或多个段。(一对多关系)

    每个数据文件都必须由一个或多个操作系统块(OS bolck)组成。(一对多关系)

    每个段都必须由一个或多个区间组成(一对多关系)

    每个区间都必须由一个或多个Oracle数据块(Oracle block)组成。(一对多关系)

    每个区间都必须被定位并且只能定位在一个数据文件内,数据文件中的空间可以被分配一个或多个区间(多对一关系)

    每个Oracle数据块都必须由一个或多个操作系统数据块组成(一对多关系)

    三、拓展

    Oracle物理及逻辑结构展现了用户眼中的宏观世界。数据库运行时,整个数据库都将围绕着这些结构进行跑转,数据将在其中进行流通,进而存储和展现。后续我们将围绕Oralce的体系结构,详细分析Oracle详细构造。

    喜欢的朋友可以扫描以下二维码进行关注,公众号将每天更新文章:



    展开全文
  • chap8Oracle逻辑存储结构.pptx
  • oracle逻辑存储结构

    千次阅读 2019-06-14 15:12:56
    一、定义二、数据块二、区(extent)2.1 区的分配2.2 区的释放三 段3.1段的分类3.2 段相关的视图四、表空间4.1 表空间...oracle逻辑结构包括表空间(tablespace),段(segment),扩展区(extent),数据块(data block)...

    一、定义

    oracle的逻辑结构包括表空间(tablespace),段(segment),扩展区(extent),数据块(data block)
    oracle数据库在逻辑上是由多个表间组成的,表空间中存储的对象叫段,比如数据段,索引段,和回退段。段由区组成,区是磁盘分配的最小单位。段的增大是通过增加区的个数来实现的。每个区的大小是数据块大小的整数倍,区的大小可以不相同;数据块是数据库中最小的I/O单位,同时也是内存数据缓冲区的单位,及数据文件存储空间单位。块的大小由参数DB_BLOCK_SIZE设置,其值应设置为操作系统块大小的整数倍。
    结构图如下
    在这里插入图片描述

    二、数据块

    数据块是数据中最小的数据组织单位与管理单位, 数据库中最小的逻辑存储单元,是数据文件磁盘存储空间单位,也是数据库I/O 的最小单位(读一个数据块,产生一次IO),数据块大小由DB_BLOCK_SIZE参数决定。
    oracle 每次请求数据的时候,都是以块为单位。也就是说,oracle每次请求的数据是块的整数吧。
    数据块结构如下图所示
    在这里插入图片描述
    块头:存放块的基本信息,如块的物理地址、块所属的段类型(是数据段还是索引段)
    表目录:存放表的信息,即:如果一些表的数据被存放在这个块中,那么,这些表的相关信息将被存放在表目录中。
    行数据:真正存放表数据和索引数据的地方。这部分空间也被数据行占用空间。
    空余空间:空余空间是一个块中未使用的区域,这片区域用于新行的插入和已经存在的行更新。
    头部信息区:我们把块头、表目录、行目录这三部分合称为头部信息区,头部信息区不存放数据,它存放的是整个块的信息。头部信息区的大小是可变的。一般来说 头部信息区 大小介于84字节和107字节。
    当往数据库中插入数据的时候,块中的自由空间会减少;当对块中已经存在的行进行修改(update)的时候(使记录长度增加),块中的自由空间也会减少。
    当使用delete或者update使行记录变小的时候,oracle会释放部分自由空间,释放的自由空间并不是连续的。
    通常情况下oracle不会对块中不连续的自由空间进行合并。只有当用户进行数据插入或者更新操作,却找不到连续的自由空间的时候,oracle才会合并数据块中的不连续自由空间。
    对于块中的自由空间,oracle提供两种管理方式:自动管理和手动管理。
    1.1获取数据块编号

    SELECT dbms_rowid.rowid_block_number(ROWID) BLOCK, --返回输入ROWID的数据块号 
           COUNT(1)
      FROM emp t
     GROUP BY dbms_rowid.rowid_block_number(ROWID);
    

    在这里插入图片描述

    看到表emp 数据全部分布在一个数据块上

    二、区(extent)

    区是磁盘空间分配的最小单位。磁盘按区划分,每次至少分配一个区。区存储于段中,它由连续的数据块组成。区的分配过程中,每次至分配5个区。如果所剩的空闲空间不够5个区,就会出现错误:ORA-01653。可以通过字典dba_tablespaces查询表空间中区的信息。可以通过字典user_tables查询段中区的信息。可以通过字典user_extents查询区的分配状况。我们可以通过以下SQL语句分别查询表空间、段、区中区的分配信息
    一个或多个块组成区,一个或多个区组成段。
    一个区只能属于一个数据文件。

     SELECT t.segment_name    区名称,
           t.segment_type    区类型,
           t.tablespace_name 表空间,
           t.extent_id       区id,
           t.bytes           区大小,
           t.blocks          块数目
      FROM user_extents t;
    

    在这里插入图片描述

    2.1 区的分配

    当创建一个表时,oracle会给这个表的数据段分配一个初始区(initial extent),即使没有数据的插入,oracle还是会分配这个初始区。伴随着数据的插入,这个初始区的空间被填满数据,oracle会再分配一个新的区给这个数据段,这样的区,我们把它叫做递增区,如果第一个递增区用完,oracle还会分配另外的递增区,周而复始地这样循环下去。
    出于管理的需要,段的头部含有区的一个目录。

    2.2 区的释放

    通常分配给一个段的区所占用的空间不会释放。除非我们把和这些段相关的对象给删除(drop table或drop cluster) 但是我们可以通过下面的方式回收分配给一个段的区。

    truncate …… drop storage 命令会回收分配给一个段的区。

    alter table …… deallocate unused 命令会回收已经分配给一个段,但还没使用的区。

    三 段

    段是由一个或多个连续或不连续的区组成的逻辑存储单元,用于存储特定的、具有独立存储结构的数据库对象。根据存储对象类型不同,分为: 数据段(表段)、索引段、临时段和回退段4类。
    表由段组成,一个表由一个或者多个段组成。普通表由一个段组成,分区表由多个段组成。
    创建表的时候,其实质就是创建一个或者多个段。
    在这里插入图片描述

    3.1段的分类

    表段:又称数据段,用来存储表或簇的数据,可以细分为普通表段、分区表段、簇段、索引化表段
    创建数据段的时候,可以指定数据段的存储参数。
    索引段:用来存放索引数据,包括 ROWID 和索引值,每个非分区索引有一个单独的索引段。
    创建索引时,实质就是创建一个或者多个索引段
    回退段:用于保存数据库的回退信息,包含当前未提交事务所修改的数据的原始版本。利用回退段中保存的回退信息,可以实现事务回滚、数据库恢复、数据的读一致性和闪回查询

    数据段用来存储用户的数据,每个表都有一个对应的回滚段,其名称和数据表的名字相同。
    索引段用来存储系统、用户的索引信息。
    回滚段用来存储用户数据修改前的值

    3.2 段相关的视图

    通过视图 dba_segment或者 user_segments;可以知道 段名称与数据库对象名称一致 ;

    select t.owner 用户,t.segment_name 段名称 ,t.tablespace_name 表空间名称 ,T.segment_type 段类型  from  dba_segments t
      where t.owner='SCOTT';--查看scott 用户下的段
    

    –查询结果中除了有表外还有索引
    查看段、区、块的关系

    SELECT t.segment_name    段名称,
           t.segment_type    段类型,
           t.tablespace_name 表空间名称,
           t.bytes           字节数,
           t.blocks          块数目,
           t.extents         区数目
      FROM user_segments t;
    

    在这里插入图片描述

    四、表空间

    是Oracle数据库最大的逻辑结构,一个Oracle数据库在逻辑上由多个表空间组成,一个表空间只隶属于一个数据库。Oracle中有一个称为SYSTEM的表空间,这个表空间是在创建或安装数据库时自动创建的。主要用于存储系统的数据字典,过程,函数,触发器等;也可以存储用户的表,索引等。这些对象实际上是存放在数据文件中,数据文件是数据的物理载体。一个表空间可以有多数据文件,但是一个数据文件只能属于一个表空间。一个表空间就是一片磁盘区域,他由一个或者多个磁盘文件组成,一个表空间可以容纳许多表、索引或者簇等。每个表空间有一个预制的磁盘区域称为初始区间(initial extent)用完这个区间后再用下一个,直到用完表空间,这时候需要对表空间进行扩展,增加数据文件或者扩大已经存在的数据文件;每个数据库都拥有一个系统表空间(SYSTEM tablespace)和一个辅助表空间(SYSAUX tablespace)

    4.1 表空间分类

    表空间根据存储数据类型的不同,分为系统表空间非系统表空间两类。
    系统表空间主要存放数据库的系统信息,如数据字典、数据库对象定义信息,数据库组件信息等。
    非系统表空间又分为撤销表空间、临时表空间和用户表空间等。其中撤销表空间用于自动管理数据库的回退信息,临时表空间用于管理数据库的临时信息,用户表空间用于存储业务数据。

    4.1.1 大文件表空间

    大文件表空间是由一个很大的数据文件组成。大表空间使用oralce能够使用和管理超级大的文件 。
    默认情况下,系统默认创建的是小文件表空间,小文件表空间是传统的表空间类型,oracle创建的system表空间和sysaux表空间都是小文件表空间

    使用大文件表空间的优点:
    1、使表空间的容量更大
    2、在超大型数据库中,简化数据文件的管理,使用大文件表空间,可以减少SGA的需求,同时还可以控制文件尺寸。
    3、简化整个数据库的管理

    4.1.2 系統表空間

    每个数据库都有一个叫system的表空间,一旦打开数据库,系统表空间必须在线(online)数据字典的数据被存放在系统表空间中。

    4.1.3 辅助表空间

    辅助表空间是对系统表空间的补充,许多数据库组件(components)的信息不存放在系统表空间中,而是存储放在辅助表空间中,创建数据库的过程中,oracle会自动创建辅助表空间,通常情况下,oracle不允许删除和重命名辅助表空间。Oracle也不支持传输辅助表空间

    4.1.4 回滚表空间

    undo tablespace 回滚表空间是一种类型的表空间,用于存放回滚数据。回滚段表空间是一个特殊的表空间,回滚段表空间只能用于存放回滚段。不能在回滚段表空间创建其他数据库对象(如表、索引)。每个数据库可有零个或者多个回滚表空间。但是只能有一个活动的回滚表空间。system回滚段是特殊的回滚段,它存在于system表空间,system回滚段用于回滚系统事务。非系统事务只能交由非系统回滚段来处理。因此,除了系统回滚段表空间外,每个数据库应该另外创建一个回滚段表空间

    4.1.5 临时表空间

    临时表空间是临时存放数据的地方。临时表空间中含有排序段,临时数据都放在排序段中,临时数据是进行排序时用到的一些数据,这些数据暂时存放在临时段中,一个sql语句可能会使用一个或者多个临时表空间。临时表空间中不能创建永久性的数据对象(如表、索引)一个排序段可以被多个排序操作所共享。当执行第一次排序的时候,oracle在临时表空间中创建排序段,这个排序段不断扩展,直到能够容纳所有的排序数据。创建用户的时候,应该给用户指定一个临时表空间,用户的排序段存放在这个表空间中,如果没有给用户指定临时表空间,oracle会自动给这个用户指定一个临时表空间,这个临时表空间叫默认临时表空间。如果系统表空间是本地管理的,则必须定义一个默认临时表空间system表空间不能作为默认临时表空间;如果系统表空间是字典管理的,则不必定义一个默认临时表空间,sytem表空间可以作为默认临时表空间,但是一旦用户使用系统表空间进行排序,oracle会发出警告。从性能的角度考虑,不应该把sytem表空间作为临时表空间。创建数据库的时候。可以指定默认临时表空间,数据库完成以后,我们也可以使用alter database default
    temporary tablespace 名令指定默认临时表空间。

    查看临时表空间

         SELECT tablespace_name,
                 file_name,
                 bytes / 1024 / 1024 file_size,
                 autoextensible
            FROM dba_temp_files;
    --默认临时表空间
    select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';
    
    展开全文
  • Oracle逻辑结构、物理结构与实例.doc
  • 1. 逻辑结构 (1) 对应关系:'一对多' (2) 大小关系: 表空间 TableSpace > 段 Segment > 区 Extent > 数据块 Block 2. 物理结构 (1) '数据文件': '系统和用户数据',默认以 'DBF' 为扩展
  • oracle 存储结构分为物理结构和逻辑结构,这两周存储结构既相互独立又相互联系。 1. oracle 物理结构 主要文件: ·数据文件: 包含数据库的用户或应用程序数据,以及元数据和数据字典。 ·重做日志文件: 用于...
  • chap8Oracle逻辑存储结构;本章内容;本章要求;8.1项目导入规划人力资源管理系统数据库逻辑存储结构 ;8.2 逻辑存储结构概述;8.3表空间;8.3.1 表空间概述;1表空间概念;2表空间的分类;3表空间的管理方式;4表空间管理策略...
  • oracle 逻辑存储结构

    2011-12-15 09:38:41
    oracle 逻辑存储结构
  • Oracle 逻辑存储结构

    2018-12-15 18:07:14
    Oracle 逻辑存储结构 一、数据块(data blocks) 数据块是Oracle数据库逻辑存储结构中的最小单位,也是执行数据库输入输出的最小存储单位。通常Oracle数据块是操作系统块的整数倍。数据块的标准大小被写入到初始化...
  • 9-Oracle数据库逻辑结构.pptx
  • 第 二 章 ORACLE逻辑结构 ORACLE逻辑结构 ORACLE逻辑结构是由一个或多个表空间组成 一个表空间由一组分类段组成 一个段由一组范围组成 一个范围由一批数据库块组成 一个数据库块对应一个或多个物理块 ...
  • oracle数据库逻辑结构

    2019-08-10 16:23:24
    oracle database为数据库里面的说有数据都分配了逻辑空间。oracle database的逻辑单元有数据块、extent\段、表空间。下面是逻辑存储和物理存储之间的关系。 参考文献 Logical Storage Structures ...
  • Oracle数据库的逻辑结构与物理结构.pptx

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 148,356
精华内容 59,342
关键字:

属于oracle的逻辑结构