我有一个比较复杂的select 语句,多个表关联,select 十几秒,原表有3000W条数据,我目前每次查询一个月数据,大约50多万条数据,然后插入到目标表。但是insert进表的时候却要了一个多钟头!而且目标表没索引,没约束,没外键!但是对原表的Select查询却很快,但是跑存储过程就要很久!各位帮忙看看什么原因Insert insert效率

解决方案 »

  1.   

    1.alter table 目标表 nologging;
    2.insert /* append */ into 目标表 select * from ....
    3.alter table 目标表 logging;
    4.收集统计信息
      

  2.   

    insert /*+ append */ into 目标表 select * from ....
      

  3.   

    一 楼主要用的是oracle的暗示,追加的形式插入到数据块中,不写日志。我补充一点,你的目标表建立分区了吗》建议先按月建立分区后,再进行插入的操作