本帖最后由 chybin500 于 2012-01-05 15:30:45 编辑

解决方案 »

  1.   

    select 出来的速度怎么样?
      

  2.   

    你的数据量太大,一个是通过物化视图进行预计算。或者使用并行,以资源换时间。以Xs.Spxxid,或者Xs.Gysid对表分区.然后设置PARALLEL_MAX_SERVERS\PARALLEL_MIN_PERCENT参数。
    alter table WMS_Gyspzjh parallel 16 
      

  3.   

    将Jt_Webg_Gyspzjh_Temp建成分区表,然后按分区来进行数据的插入吧。
    (就是加上where条件,对记录进行筛选,把符合条件的记录一部分一部分地插入到新的分区表中。
      

  4.   

    Jt_Webg_Gyspzjh_Temp表里的数据,插入后应该不多,
    我的这个大表WMS_Gyspzjh 是分区的
    那我就是按分区查询WMS_Gyspzjh 表,插入Jt_Webg_Gyspzjh_Temp应该可以就行吧
    可是怎么按分区查WMS_Gyspzjh表呢?
    没做过,请做过的指教一下,我也去百度下
      

  5.   

        1:Insert Into Jt_Webg_Gyspzjh_Temp-》Insert Into /*+append nologging*/ Jt_Webg_Gyspzjh_Temp
       2:使用并行插入
        3:Jt_Webg_Gyspzjh_Temp 表没有索引吧,如果有索引把所有失效掉
        数据量大查询数据,插入数据必然会慢,只能尽量缩短时间
      

  6.   


    按分區查詢:
    select * from WMS_Gyspzjh partition (分區名稱);並行處理的話要保證有足夠多的空閒資源可用(CPU ,內存..)  謹慎考慮。用存儲過程的話,可以減少網絡傳輸,可以考慮在過程裡批量處理  bulk collect 。