刚刚接触pl,我的表里只有2,3十条数据,不太明白,一加上order by之后就一直在执行,不返回结果。

解决方案 »

  1.   

    order by是肯定的耗时间
    具体的代码
      

  2.   

    比如就 select * from A order by id desc表里面有30多条数据,一直执行了半天
      

  3.   

    不正常
    你试试
    create table t1
    as
    select * from A ;
    truncate table A;
    insert into a 
    select * from t1;
    然后再
    select * from A order by id desc
      

  4.   

    还有一个这样的情况select * from Awhere ID='001',这个有数据,很快就出来了,select * from A WHERE ID='888',这个没数据,但是很慢,奇了怪了。
      

  5.   

    估计是你hwm太高了是不是表里曾经存在过天量数据,后来删除的就剩几十条了?
    id上应该有索引。当索引值存在时直接利用索引查找rowid,所以快。
    当索引值不在时,全表扫描,这时候就慢了
    你按我上面说的操作下应该就好了。
    truncate和drop可以降低hwm
      

  6.   

    给order by后的字段建个索引试试
      

  7.   

    2,3十条 加上order by 很慢  这得是什么机器啊。。