也說sql server分頁查詢

2021-08-21 22:56:27 字數 643 閱讀 7985

也說sql server分頁查詢

現在一般常用的有以下2種方法:

1. select top @pagesize * from table1 where id not in (select top @pagesize*(@page-1) id from table1 order by id) order by id

2. select * from (select top @pagesize * from (select top @pagesize*@page * from table1 order by id) a order by id desc) b order by id

哪種方法更好?試了一下.

做兩個table,各有1萬條記錄,乙個table的id有index,乙個沒有

圖1,沒有index的table,取第1000-1100條記錄

圖2,沒有index的table,取第9000-9100條記錄

圖3,有index,取第1000-1100條記錄

圖4,有index,取第9000-9100條記錄

可以發現sort的字段建立了index的條件下,第1個方法快很多,特別是查到後面頁數的時候.原因就在於第2個方法中,第一次做了select 後,再做自查詢時,index已經沒有了.sort就會非常影響效能了.

SQL Server 分頁查詢

ps,此文是純個人筆記 公司裡乙個專案裡用到了一種資料庫分頁查詢的方式 1 定義乙個臨時的table 這個table有乙個自增的之間id,和要查的資料表的主鍵id 2 再一次查詢,用id在分頁數段來and 一下結果 具體操作如下 定義個臨時表 temptable declare temptable ...

SQL SERVER 分頁查詢

方式一 row number select top 頁大小 from select row number over order by id as rownumber,from table1 as a where rownumber 頁大小 當前頁 1 註解 首先利用row number 為table...

Sql Server 分頁查詢

sql server 中通過sql語句實現分頁查詢 方案一 利用not in和select top分頁 select top 頁大小 from 表名 where id not in select top 頁大小 頁數 1 id from 表名 order by id order by id 方案二 ...