SQL Server 2005/2008 分頁

先來一段代碼:
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秒 [lol] ,表中數據量230萬
接下來大批量的數據查詢性能瓶頸就在count了,不知道sql server 2005在這方面有沒有什麼改進.

附另一種方法:
SELECT *
FROM (select *,ROW_NUMBER() Over(order by id) as rowNum from table_info ) as myTable
WHERE rowNum between 50 and 60;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章