为column1,column2创建索引
select rownum id,a.* from (select * from T ............ order by column1,column2)
where id between 500001 and 501000;

解决方案 »

  1.   

    同意bzszp的索引
    但是rownum用的有问题
    select ..... from 
     (select rownum id,t.* from a order by col... where rownum<=501000) t1
    where t1.id>50000
    楼主能不能把测试的结果告诉我
      

  2.   

    例如:
    SQL> select * from test order by name,id;        ID NAME
    ---------- --------------------
             1 222
             1 333
             2 333
             3 333
             3 333
             2 4444SQL> select name,id from (select rownum nm,name,id from test order by name,id) a  2  where nm between 1 and 3;NAME                         ID
    -------------------- ----------
    222                           1
    333                           1
    4444                          2
      

  3.   

    感谢各位的指点,我用JSP作WEB开发,用JDBC访问Oracle数据库,我测试了一下访问本地数据库从500001到501000条记录用了 12 秒多,这个等待时间还是嫌太多了,如果能缩短到 5 秒以内就比较理想了,不知各位能否有更好的方法?如果这个表有主键,是不是会好做一点?
      

  4.   

    表有了主键,oracle自动会为它建立索引
      

  5.   

    看我的:
    1.create index index_t on t(column1,column2);
    2.select * from (select * from T ............ order by column1,column2) 
     where rownum between 500001 and 501000;