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 段管理方式
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号