Oracle 插入总结

Oracle 向一个表中插入数据的两种方式:
       Conventional Insert Operations:传统插入会优先使用高水位之下,会保证数据应用完整性:高水位之下是指:删除之后的剩余空间,高水位之上是指:从来没有用过的处女块。
       Direct-path Insert Operations:数据插入会利用高水位之上,不用高水位之下。采用Appends追加方式、不经过Buffer Catch 这个过程会大大提高性能。

Dircet-Load 工作模式
1 Serial Direct-path Insert :Single proces Insert (用分区或没分区)一个进程。插入之前是不会用高水位之下的块。所以插入前要rebuild 表使高水下的块结束空状态
2 Parallel Direct-path Insert(用分区) :多进程并行插入分区表。一个分区上可用多个进程,但是一个进程不能进入多个区。和1种方式一样、
3 Parallel Direct-path Insert (非分区):多进程并行插入非分区表。每个需要干活的进程会分一个临时的segment。最后会有一个协调者进程把segment合并移动到primary table segment 上。

 

具体:
1 (串行) :insert /*+Append*/ into temp nologging select * from all_objects;
/*+Append*/ :(串行)块拷贝直接使用高水位。
需要commit 后在查询。
2 (并行含分区):默认就是/*+Append*/
   Alter sesion enable parallel DML;
   INSERT /*+Parallel (用户.表, 分区数)*/  into 表 nologging select * from 源表。

如果是分区表nologging模式和主表的nologging 一样
一个表的nologging 是和它所在表空间的所在表空间是一样的。
可以改变所在表空间的nologging改变其下的表的nologging模式


set autot :可以查看Statistics logging日志
不过这样nologging是没有用的。可以使用alter table xxx nologging;
在insert /*+Append*/ into temp nologging select * from all_objects; 是会产生redo size非常的少、

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值