2009年2月11日
摘要: --1 append只在insert … select …中起作用,像insert /*+ append */ into t values(…)这类的语句是不起作用的。在update、delete操作中,append也不起作用。 --2 append会使数据库不记录直接路径导入的数据的重做日志,会对恢复带来麻烦。 --3 append直接在表段的高水位线以上写数据,不会重用高水位线以下的空间,会对... 阅读全文
posted @ 2009-02-11 11:36 一江水 阅读(1344) 评论(0) 推荐(0)
摘要: 用insert append可以实现直接路径加载,速度比常规加载方式快。但有一点需要注意: insert append时在表上加“6”类型的锁,会阻塞表上的所有DML语句。因此在有业务运行的情况下要慎重使用。若同时执行多个insert append对同一个表并行加载数据,并不一定会提高速度。因为每一时刻只能有一个进程在加载(排它锁造成)。 SQL> create table test as se... 阅读全文
posted @ 2009-02-11 11:35 一江水 阅读(2358) 评论(1) 推荐(0)
摘要: http://www.blogjava.net/fjpan2002/archive/2006/11/14/81051.aspx (1)、Oracle插入数据有两种方式: a、常规插入:重新使用table中的自由空间,在已有数据中插入新数据;维护引用完整性约束。 b、Direct-Path插入:在表中已有数据之后插入新数据;数据直接插入数据文件,绕过buffer cache;已有数据中的自由空间没... 阅读全文
posted @ 2009-02-11 11:20 一江水 阅读(3095) 评论(0) 推荐(0)
摘要: SQL> select count(*) from t; COUNT(*) ---------- 5442048 **************************** SQL> alter table t1 nologging; SQL> insert /*+append*/ into t1 2 select * from t; 5442048 rows created. Elapsed: 0... 阅读全文
posted @ 2009-02-11 11:18 一江水 阅读(24898) 评论(0) 推荐(1)
摘要: http://blog.csdn.net/jat_chipmore/archive/2008/11/27/3391402.aspx 从理论上来说,对于 direct insert 的 undo (rowid)实在没有存在的必要 因为HWM 在移动的过程中,这些block是不能被其他process使用的,那么,意味着,只要记录下该次direct insert所涉及到的 空间的redo 和 undo ... 阅读全文
posted @ 2009-02-11 11:11 一江水 阅读(1773) 评论(0) 推荐(0)