oracle 好书( 09 对象管理 )

所谓对象,指的是逻辑意义上的概念,不是物理意义上的,这些对象都放在某个用户下,这些对象也叫

schema对象。schema表示某个用户下对象的集合,schema名称与用户名相同。但是schema与用户不

是一回事。如果用户下没有任何对象,则改用户就不存在schema,只有当用户具有了对象,用户才具有

schema.

- 表

  普通表:一个表对象一个segment

  分区表:每个分区对应一个segment,每个segment可以位于不同的表空间里。一般我们会把数据量

         大的表做成分区表。

  索引组织表:IOT必须有一个主键索引,同时所有数据与主键列一起存放在主键索引的叶子节点里

  簇表:两个表经常进行关联查询,这时我们就可以把它们创建成簇表。

- 管理表 

  扩展表:扩展存储空间

  重整表:主要是将一个表从目前所在表空间转义到另外一个表空间,或者需要消除表的数据块级碎片

         还有就是处理高水位HWM.

  收缩表:shrink, 收缩操作时通过事务的方式来将数据行从一个数据块转移到另一个数据块里。在

         收缩过程中,表仍然时可以进行DML操作。收缩的前提,表空间必须使用ASSM,另外,在被

         收缩的表上必须启用 row movement ( alter table t enable row movement; )

         这个是oracle10g 新特性,以前就要重整表。

  image

     oracle 建议在业务高峰时期,进行压缩,等到业务不繁忙,再降低HWM。

  截断表: truncate table. 有时候如果表太大了,比如几个GB,如果使用 truncate 命令会需要

          很长时间,可能超过几个个小时,为此,oracle在进行截断的时候,可以在更新完数据字

          典以后,不立即释放全部数据块。但是表上的HWM已经下降了,然后,我们可以在系统比较

          空闲的时候,分多次释放数据块。每次释放部分空间。

  删除表: drop table t1;

  修改或删除列:在删除列的过程中,oracle 会消耗undo表空间,从而把被删除的列的值记录下来,

              如果表里的数据行很多的话,就会消耗很多Undo资源,为解决这个问题,我们可以

              执行 alter table t1 drop column code cascade constraints

                   checkpoint 2000; (checkpoint 2000 表示每隔2000行就提交一次)

  设置unused: alter table t set unused column createdate;

             alter table t drop unused columns checkpoint 2000;

- 约束

  not null, unique, primary key, foreign key, check

  约束状态:

    enable,disable: 表示创建约束以后,对表的数据进行插入或修改时,要参考约束情况。

    validata, novalidate: 这表示创建约束 , 是否要对表里的现存数据进行校验,以判断是否

    违反约束

    那么,这两种排列组合就有4中状态

    enable+validate: 新插入数据要校验,原有数据也要校验

    enable+novalidate: 不校验已存,只校验新插入

    disable+validate: 不校验新插入,只校验已存在

    disable+novalidate: 都不校验

    我们一般使用前两种,对于第二种情况,通常用户数据合并.

- 使用分区表,索引组织表,簇表

  -- 分区表: 范围分区(最常用)

  image 

  hash 分区

  列表分区

  -- 索引组织表

  索引组织表,IOT,本身不对应segment, 表里所有的数据都存放在主键所在的索引的叶子节点里

  -- 临时表空间

  image

- 索引 

  索引与表一样,也属于一种段segment,里面存放了用户的数据,与表一样需要占用磁盘空间。只不过,在索引里的数据存放形式与表里的数据存放形式非常不一样,它是一个有序排列的结构。索引所占的磁盘空间要比表小的多,其主要作用是为了加快对数据的搜索速度,也可以用来保证数据的唯一性。

  -- B 树索引

image

image

image

image

image

image
image

image

image

image

image

image

-- 位图索引

位图索引是另外一种索引类型,它的组织形式与B树索引相同,也是一棵平衡树。与B树索引的区别在于叶子节点存放索引条目的方式不同。

image

image

image

image

-- 管理索引

  image

image

image

image

- 其他对象(view, sequence)

- 可恢复空间分配(oracle10g新特性)

image

image

image

原文地址:https://www.cnblogs.com/moveofgod/p/3054470.html