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...