一个表中有20万条记录,现在要分页显示出来,每页100条,请问有几种方式可以实现,并说明各个方式的优缺点,并写出相应sql或程式语句

解决方案 »

  1.   

    一般采用分页的存储过程:
    参考:
    http://www.cnblogs.com/sgsoft/archive/2004/10/23/55800.html
      

  2.   

    一般来说如果不排序的话比较好做
    假设 分页参数为n
    select aa.*
    select (
    select *,rownum rn
    from a
    where rownum<=(n+1)*100) aa
    where aa.rn>=n*100
      

  3.   

    如果可以按rowid排序
    select b.col1, b.col2,.. .., b.coln
      from (select a.*, dense_rank() over(order by rowid) rn from table a)
     where a.rn >= 100
       and a.rn < 200;
      

  4.   

    select b.col1, b.col2,.. .., b.coln 
      from (select a.*, dense_rank() over(order by rowid) rn from table a) b
     where a.rn >= 100 
       and a.rn  < 200; 忘加了第二个表名
      

  5.   

    这个分2句话说,看是否有索引及是否需要按一定的排列顺序;
    如果排列顺序和索引一致,可以采用强制索引,对于解决排序没有问题.
    如果有别的排序,可以使用row_number,至于性能如何,那就要看你的福气了.
    不管是否采用存储过程什么的,都是不能在根本上解决问题的.