SQL千万级的分页存储过程  好语句
  试过 1.row_number() 
       2.top.....not in
       3.top...max(id)
都是要半分钟以上的   拼接成语句的话
   有没有其他好多方法  通用sql

解决方案 »

  1.   

    印象中sql server的分页就3种语句常用:
    1. set rowcount
    2. top
    3. row_number()以前看邹健的书里似乎还有用cursor什么的,似乎不多见
      

  2.   

    用top + left join 
    select top 1000 * from a left join(select top 10000 id from a) as b
    on a.id=b.id where b.id is null
      

  3.   

    又能通用,又要快,真的难实现,因为不同的表结构,不同的索引,不同的Join和Where条件,很难实现通用的分页.即使使用通用分页存储过程,性能也是非常好.通用存储过程,可参考:
    <通用分页存储过程(SQL Server 2005)>
    http://www.cnblogs.com/wghao/archive/2013/01/23/2873256.html