高效分頁(高效 通用)

2021-08-30 18:27:01 字數 673 閱讀 7840

select row_number()  over(order by qty,empid) as rownum,

empid,mgrid,qty

into #salesrn

from dbo.sales;

create  unique  clustered index idx_rn on #salesrn(rownum);

declare @pagesize as int,@pagenum  as int;

set @pagesize=5;

set @pagenum=2;

select  rownum,empid,mgrid,qty

from #salesrn

where rownum between @pagesize*(@pagenum-1)+1

and@pagesize*@pagenum

order by rownum;

drop table #salesrn;

優點:高效  思路是把資料插入乙個臨時表中,並為臨時表建立乙個聚集索引,保證每次只seek所需的資料。

通用:sqlserver 2005及以後的版本,無論資料庫的主鍵是什麼型別的(identity  &&guid),都可以通過row_number()

進行處理

經測試後此方法效能上仍然欠缺,我將在提供乙個思路。

ACCESS高效分頁

由於access資料庫內沒有儲存過程一說.那麼實現它的分頁上效率問題一直都是麻煩事.下面一段 相當來說算了很高效的了.如果有什麼更好的方法,請多指教 謝謝 呼叫方法 string strsql select p.productid,p.proclassid,p.productname,p.profl...

Mysql高效分頁

通常針對mysql大資料量的查詢採取 分頁 策略,但是如果翻頁到比較靠後的位置時查詢將變得很慢,因為mysql將花費大量的時間來掃瞄需要丟棄的資料。通常情況下,為了實現高效分頁,需要在查詢中where條件列和排序列應用組合索引。例如,建立索引 a,b,c 使得以下查詢可以使用索引,提高查詢效率 1 ...

ACCESS高效分頁

由於access資料庫內沒有儲存過程一說.那麼實現它的分頁上效率問題一直都是麻煩事.下面一段 相當來說算了很高效的了.如果有什麼更好的方法,請多指教 謝謝 呼叫方法 string strsql select p.productid,p.proclassid,p.productname,p.profl...