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非常的少、
相关文档:
http://blog.sina.com.cn/s/blog_3fed8ad60100bydo.html
1、首先利用system帐户创建新的分区:
my_space1, my_space2(利用网页控制台创建表空间以及用代码创建)。
在实际工作中,不同的区可以位于不同的物理磁盘中,才有真正分区的效果。
然后:用scott帐户创建范围分区表:
create table t1(
id number(5) pri ......
Oracle卸载卸不干净,Oracle彻底删除的办法(winxp)
Oracle卸载卸不干净,Oracle彻底删除的办法(winxp)
用oracle的卸载程序并不能完全卸载干净。如之前的命名的oracle sid 不能再使用。会提示sid存在。下面是在winxp下完全卸载oracle的方法。
1、开始->设置->控制面板->管理工具->服务
&nbs ......
author:skate
tiime:2009-11-18
ORACLE等待事件类型【Classes of Wait Events】
每一个等待事件都属于某一类,下面给出了每一类等待事件的描述。【Every wait event belongs to a class of wait event.
The following list describes each of the wait classes.】
1. 管理类:Administrative
此类等待事件是由于DBA的 ......
--single line method
select ascii('A') Big_A from dual;
select chr(65) A, chr(122) z, chr(223) ch3 from dual;
select concat('sigo','way') from dual;
select initcap('sigoway') from dual;
select instr('ababab','a',-1,2), instr('ababab','a',1,3) from dual;
select instrb('ababab','a',1,3) from dua ......