4591566 发表于 2018-9-14 13:20:17

oracle教程之Oracle插入大量数据操作

  1. 采用高速的存储设备,提高读写能力,如: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)
  oracle视频教程请关注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html

页: [1]
查看完整版本: oracle教程之Oracle插入大量数据操作