In: .net| MS SQL Server 2005
14 Apr 2009今天上csdn,看到有人在炫耀自己所谓的分页算法,呃。。。我觉得算不上是什么算法,就是一种解决方案吧。不过回帖的人好多,在回帖里淘到了不错的东西,发上来记录一下。
1
2
3
4
5
6
7
WITH OrderedOrders AS
(SELECT *,
ROW_NUMBER() OVER (ORDER BY [id])AS RowNumber –id是用来排序的列
FROM table_info ) –table_info是表名
SELECT *
FROM OrderedOrders
WHERE RowNumber BETWEEN 50 AND 60;
在windows server 2003, sql server 2005 CTP,P4 2.66GHZ,1GB 内存下测试,执行时间0秒 ,表中数据量230万
接下来大批量的数据查询性能瓶颈就在count了,不知道sql server 2005在这方面有没有什么改进.
附另一种方法:
1
2
3
4
SELECT *
FROM (SELECT *,ROW_NUMBER() Over(ORDER BY id) AS rowNum
FROM table_info ) AS myTable
WHERE rowNum BETWEEN 50 AND 60;
姓名:郑玏
性别:男
职业:IT工程师
爱好:KTV、乒乓球、台球、五子棋、围棋、编程
语言:中文、英语、闽南语
Email: