新版資料庫分頁方法(Sql server2012)

2022-01-20 09:27:18 字數 1255 閱讀 2488

1. row_number() 的分頁方法

dbcc

freeproccache

dbcc

dropcleanbuffers

setstatistics time on

setstatistics io on

setstatistics profile on;

with #pager as

(select id,title,row_number() over(order

by id) as rowid from

article_detail

)select id,title from #pager where rowid between (15

* (50

-1)+

1) and15*

50set

statistics profile off;

2. offset and fetch 的分頁方法

--語法

offset

fetch only

--**示例

dbcc

freeproccache

dbcc

dropcleanbuffers

setstatistics time on

setstatistics io on

setstatistics profile on;

select id,title from article_detail order

by id offset (15

* (50

-1)) row fetch

next

15 rows only

setstatistics profile off;

1.在 sql server 2012 裡面,分頁方法中,offset and fetch 同 row_number() 比較起來,無論是效能還是語法,都是有優勢的。

2.但是效能方面,優勢並不是太大,兩者 的 io 消耗完全相同,只是 在 cpu 方面,offset and fetch 方面要好一些,但是不明顯。如果對於乙個 每秒都要處理成千上萬條的分頁sql語句的db 來說,offset and fetch 在cpu 方面的優勢會比較明顯的,否則,效能的提公升並不明顯。

3.語法方面 offset and fetch 則是十分的簡潔,一句搞定,比起 row_number() 好了太多 ~

資料庫分頁查詢方法

在這裡主要講解一下 mysql sqlserver2000 及sqlserver2005 和orcale三種 資料庫實現 分頁 查詢的方法。可能會有人說這些網上都有,但我的主要目的是把這些知識通過我實際的應用總結歸納一下,以方便大家查詢使用。下面就分別給大家介紹 講解一下三種資料庫實現分頁查詢的方法...

資料庫分頁查詢方法

在這裡主要講解一下mysql sqlserver2000 及sqlserver2005 和orcale三種資料庫實現分頁查詢的方法。您可能感興趣的文章 oracle,mysql,sqlserver三種資料庫的分頁查詢的例項 sql server 分頁查詢通用儲存過程 只做分頁查詢用 mysql分頁原...

資料庫分頁查詢方法

在這裡主要講解一下mysql sqlserver2000 及sqlserver2005 和orcale三種資料庫實現分頁查詢的方法。可能會有人說這些網上都有,但我的主要目的是把這些知識通過我實際的應用總結歸納一下,以方便大家查詢使用。下面就分別給大家介紹 講解一下三種資料庫實現分頁查詢的方法。一 m...