SQLServer2005新的高效分頁方法

iSQlServer發表於2009-02-16

Select * FROM (
  select ROW_NUMBER()Over(order by cf_id desc) as rowId,* from T_Test
) as mytable
where rowId between 21 and 40


每頁20條,第2頁

ROW_NUMBER是SqlServer2005中的新特性

以下是利用本方法和傳統利用Set RowCount方法儲存過程的效率比較結果:

未建索引情況下:
500w資料: 儲存過程1分20秒 , 新方法1分18秒
400w資料:儲存過程47秒,新方法41秒
300w資料:儲存過程35秒,新方法30秒
200w資料:儲存過程25秒,新方法20秒
100W資料:儲存過程12秒,新方法10秒
50W資料:儲存過程 7秒,新方法 0秒

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-553435/,如需轉載,請註明出處,否則將追究法律責任。

相關文章