項目完成了,老是被一些效率問題困擾,查看一些資料,總結記錄了幾種sql分頁的執行效率:sql
方法一:ide
- 1.
- SELECT TOP 頁大小 *
- FROM table1
- WHERE id NOT IN
- (
- SELECT TOP 頁大小*(頁數-1) id FROM table1 ORDER BY id
- )
- ORDER BY id
方法二:spa
- SELECT TOP 頁大小 *
- FROM table1
- WHERE id >
- (
- SELECT ISNULL(MAX(id),0)
- FROM
- (
- SELECT TOP 頁大小*(頁數-1) id FROM table1 ORDER BY id
- ) A
- )
- ORDER BY id
- SELECT TOP 頁大小 *
- FROM
- (
- SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM table1
- ) A
- WHERE RowNumber > 頁大小*(頁數-1)
總結:方法1利用id範圍not in分頁,效率次之xml
方法2利用id最大值分頁,效率最高it
方法3利用遊標分頁,效率最差table