本帖最后由 yangfei_01 于 2011-05-14 17:38:31 编辑

解决方案 »

  1.   

    1、你查询时并没有返回全部数据,界面上看到只是有限的几行。而创建表时肯定要返回全部数据并插入新表。
    2、建临时表主意不错,如果每个会话使用各自的数据,建立oracle真正的临时表最好,使用create global temporary table ....。
      

  2.   

    但是那个select查询的结果只有624行,会因为直接select返回的行数不同时间上有如此大的差异么?
    下面一张图片是从一张已经有这624行数据的表中复制数据的结果:
      

  3.   

    你可以分别执行下面两个语句,对比执行时间:create table temp_large_order 
    as 
    select l_orderkey from lineitem group by l_orderkey having sum(l_quantity) > 300;select count(*) from (
    select l_orderkey from lineitem group by l_orderkey having sum(l_quantity) > 300);
      

  4.   

    试了一下确实是因为select语句没有返回全部结果。谢谢了。