oracle表空间

一、 oracle自带的表空间

SYSTEM
  oracle运行最重要的表空间(维持数据库正常运行)
  数据字典
  大部分组件
  运行状态:
    online
    offline

SYSAUX(系统辅助表空间)
  10g以后增加的
  给SYSTEM表空间分压
  oem组件在里面
  可以offlne

TEMP
  临时表空间
  sql创建临时段(大规模排序,索引)
    存储的数据对原数据没有太大意义(所有他不属于datafile)
    排序不改变表原有的数据
    排序非常消耗性能(循环)
    创建索引也要先排序

UNDOTBS1
  oracle存储还原信息的还原表空间
    update 未commit之前 其他select去读
    update后数据会写入redo,update前数据会放到undo
    select将去undo表空间找
  不能offline


USERS
  存储用户对象和数据

二、逻辑结构:

表空间 (table space)

  表空间对应的是数据文件。
  类型:
    permanal

      普通表空间
    temp

      一个数据库里面可以有多个临时表空间,并且可以被同时使用
    undo

      一个数据库里面可以有多少个undo表空间,同时只能有一个在被使用
段 (segment)
  若干个区组成段:

  段头:

  管理方式:
    auto(推荐使用)
    manual
区 (extent)

  若干个块组成区

  区头:

    由多个块组成(不存数据)

    记录块的使用情况
  管理方式:
    本地管理(local)
      区分配方式:
        1、uniform 指定大小分配
        2、不写uniform自动分配
          先8个块8个分配(每个块8192B=8K)
          然后根据真实数据进行动态分配
          分的次数多耗cpu
    字典管理(dict)

块 (block)

  块的组成:

    块头block_header
      对下面记录信息的高度总结
      找数据时通过块头去找信息
    空闲空间 pct_free
      使用区用完后,对列更改时(增加列)使用
      尽量保证一行数据放在同一数据块(减少io)
      #行链接空间用满,链接到其他的数据块
    使用区(行数据)pct_used
      以行为单位存到使用区

  系统表初始区分配8个块 64K。

 三、查看表空间的信息:

SQL> SELECT TABLESPACE_NAME,BLOCK_SIZE,INITIAL_EXTENT,NEXT_EXTENT,EXTENT_MANAGEMENT,ALLOCATION_TYPE,SEGMENT_SPACE_MANAGEMENT FROM DBA_TABLESPACES;

block_size  块大小(单位字节)

initial_nextent 初始化区的大小(其中65536则是8字节)

next_extent   下一次分配区的大小(不写则表示区的分配方式是自动的)

extent_man   区管理方式

allocatio  处于那个表空间的

segmen  段管理方式

原文地址:https://www.cnblogs.com/fanxuanhui-linux/p/7098862.html