我现在有一个视图,根据条件检索到大约1000万左右的数据,我现在要将这写数据插入到一个表中,大约1年插入一次。想知道用什么方法最快,插入的表不能删除。
请大家帮忙

解决方案 »

  1.   

    Oracle 插入大量数据 
    http://user.qzone.qq.com/251097186/blog/12499880001. 采用高速的存储设备,提高读写能力,如:EMC 和NetApp,2. 假如tab1表中的没有数据的话 
    DROP   TABLE   TAB1;
    CREATE   TABLE   TAB1   AS   SELECT   *   FROM   TAB2;
    然后在创建索引 3. 用Hint 提示减少操作时间
        INSERT   /*+Append*/   INTO     tab1 
                    SELECT   *   FROM   tab2;4. 采用不写日志及使用Hint提示减少数据操作的时间。建议方案是先修改表为不写日志: 
    sql> alter   table   table_name   NOLOGGING; 
    插入数据:
    INSERT   /*+Append*/   INTO     tab1 
          SELECT   *   FROM   tab2;插入完数据后,再修改表写日志: 
    sql> alter   table   table_name   LOGGING; 这里的区别就在于如果插入数据的同时又写日志,尤其是大数据量的insert操作,需要耗费较长的时间。5. 用EXP/IMP 处理大量数据
    (1)给当前的两个表分别改名 
    alter   table   tab1   rename   to   tab11; 
    alter   table   tab2   rename   to   tab1; 
    (2)导出改名前的tab2 
    exp   user/pwd@...   file=...   log=...   tables=(tab1) 
    (3)把名字改回来 
    alter   table   tab1   rename   to   tab2; 
    alter   table   tab11   rename   to   tab1; 
    (4)导入数据 
    imp   user/pwd@...   file=...   log=...   fromuser=user   touser=user   tables=(tab1) 
      

  2.   

    INSERT  /*+Append*/  INTO    tab1 这个方法,空间问题,怎么处理呀!!