SQL千万级的分页存储过程 好语句
SQL千万级的分页存储过程 好语句
试过 1.row_number()
2.top.....not in
3.top...max(id)
都是要半分钟以上的 拼接成语句的话
有没有其他好多方法 通用 sql
[解决办法]
要么添加新列,不然是没有办法了。
[解决办法]
印象中sql server的分页就3种语句常用:
1. set rowcount
2. top
3. row_number()
以前看邹健的书里似乎还有用cursor什么的,似乎不多见
[解决办法]
用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
[解决办法]
又能通用,又要快,真的难实现,因为不同的表结构,不同的索引,不同的Join和Where条件,很难实现通用的分页.即使使用通用分页存储过程,性能也是非常好.
通用存储过程,可参考:
<通用分页存储过程(SQL Server 2005)>
http://www.cnblogs.com/wghao/archive/2013/01/23/2873256.html