--------------以下是前提--------------------
目前有一个表A,数据量300万,表A有主键KEY。
还有表B、C、D,这三张表也包含了表A这个主键KEY的列,但主键不是它。这三张表都以这个KEY这一列做了索引。表B、C的数据量有1亿,表D的数据量有3亿。
--------------以下是问题--------------------
现在我需要根据表A中的数据来拿表BCD中的数据(某些列),然后写入另外一个表E。
由于数据量的庞大,简单的select;insert效率非常低下,处理完表A这三百万的数据库得花很长时间。我把表A拆成了10份,做了一个并行处理,时间还是达不到要求。请各位大神支招,能从架构上解决这个问题。

解决方案 »

  1.   

    虽然你谈了一大堆,但你的具体需求几乎没谈到,比如:你怎么拿数据往E表里写(SQL)?你需要多久处理完?各表的结构是什么情况?当然,你可能不希望大家知道你具体的东西太多,但你可以修改一些信息,比如:表名,字段名,只要能说明问题,大家才能帮到你。还有,是oracle库还是其他库?什么版本?
      

  2.   

    呵呵,300万全部插入E表?还是只插一部分如果是全部的话,再加上关联的BCD表,不慢才怪,要是再出现笛卡尔积……