oracle五种常见表小结

         常见的五张表

1.普通堆表:适合大部分设计场景,有优点也有缺点,需要和其他表设计取长补短

(1)优点

A.语法简单方便

B.适用大部分场景

(2)缺点

A.表更新日志开销大:可在适当场合选择全局临时表

B.delete无法释放空间:可在适当场合考虑全局临时表和分区表

C.表记录太大检索较慢:可在适当场合选择分区表

D.索引回表读开销很大:可在适当场合索引组织表

E.即使有序插入,也难以有序读出:可在适当场合选择簇表

 

2.全局临时表:尤其适合接口表设计

(基于SESSION:on commit preserve rows;基于事务:on commit delete rows)

(1)优点

A.高效删除

B.产生日志少

C.不同session独立,不产生锁

(2)缺点

A.语法特别

B.数据无法得到有效的保护

 

3.分区表:尤其适合日志表

(1)优点

A.有效的分区消除

B.高效的记录清除

C.高效的记录转移

(2)缺点

A.语法复杂

B.分区过多对系统有一定的影响

 

4.索引组织表:适合极少更新的配置表

(1)优点

A.表就是索引,可以避免回表读

(2)缺点

A.语法复杂

B.更新开销较大

 

语法:create table test (name varchar2(300),id number) organization index;

5.簇表:使用频繁关联查询的多表

(1)优点

A.可以减少或避免排序

(2)缺点

A.表更新开销大

 

更新,删除,插入操作产生的redo日志大小

(1)     创建视图:统计当前sessionredo大小

Create or replace view v_redo_size as

select a.NAME,b.VALUE

  from v$statname a,v$mystat b

 where a.STATISTIC# = b.STATISTIC#

   and a.NAME = 'redo size'

 

(2)     查询当前的v_redo_size视图,并记录下redo大小

Select * from v_redo_size

 

(3)     执行更新或者删除或者插入操作

(4)     再次查询v_redo_size视图

Select * from v_redo_size;

(5)     2次的redo大小减去第1次的redo大小就是这次操作产生的redo大小

 

TABLE ACCESS BY INDEX ROWID(索引回表读):

根据索引来检索记录,会有一个先从索引中找到记录,再根据索引列上的ROWID定位到表中从而返回索引列以外的其他列的动作。

 

分区表

(1)     分区表的分区可分别指定在不同的表空间里,如果不写即为都在同一默认表空间里

(2)     HASH分区的分区个数尽量设置为偶数

 

分区操作

(1)     分区truncate

SQL>alter table range_part_tab truncate partition p9;

(2)     分区数据转移

SQL>alter table range_part_tab  exchange  partition  p8  with table  mid_tables;

(3)     分区切割

SQL>alter table range_part_tab  split  partition p_max  at  (to_date(‘2013-02-01’,’yyyy-mm-dd’))  into  (partition p2013_01,partition p_max);

At部分说明具体的范围,小于某个指定的值!into 部分说明被分割成2个分区;p_maxàp2013_01p_max;

(4)     分区合并

SQL>alter table range_part_tab  merge  partitions p2013_01,p_max  into  partition p_max;

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25269462/viewspace-763789/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/25269462/viewspace-763789/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值