tableA的数据分布在32个分区中。
现在有两种方法取数
1、select * from tableA; 全表逐条取数
2、select * from tableA partition( part_01 );
   select * from tableA partition( part_02 ); 
   ...
   然后合并各分区LOAD下来的数据文件,得到目标文件。方法1的效率比方法2低好多,差了好几倍,很奇怪。
这两种取数方法的区别在哪?难道方法1中,ORACLE使用了错误的策略?

解决方案 »

  1.   

    1.分析数据表tableA的索引。
    2.分析数据表tableA的DML操作。
      

  2.   

    select * from tableA where 1=1;
    全表取数,应该使用FTS的哦。
      

  3.   

    不知道你的机器以及Ora cle情况,按理,方法一绝对是优于方法二的.
    可能的情况,要么是你的版本有问题,
    要么就是内存不足导致,或者临时空间也不够.
    此外关键的是,你导出数据,到底是如何操作的,用什么工具?说得没有头尾,最好有个把机器配置列出的好习惯.