處理分頁的sp很多,通常情況下基本上需要四個引數(@pagesize int,@pageindex int,@key nvarchar(50),@count bit),通過count引數布林值來控制sp 是返回總記錄數還是返回指定字段。在處理後者時都是新建乙個帶自增列的臨時表,把查詢表的標識插入臨時表的其中一列,這樣根據pagesize 和pageindex 可以知道要取的記錄段了!
其實這樣在處理後面的資料時間是把所有資料都查詢了一遍是很低效的,往往在碰到多表大量資料的時候伺服器更是不堪重負。如果我們在處理後者的前面加上一句 set rowcount (@pagesize*(@pageindex-1)+@pagesize), 注意中間沒有等於號,這樣程式只會處理我們想要的那部分了。下面有個例子,是要列出三個表裡所有相關的資料:
create procedure [enteruser].[ei_companyfile_searchenterinfo]
(@skey nvarchar(100),
@pagesize int,
@pageindex int,
@docount bit,
@searchtype nvarchar(1),
@i int out)
asset nocount on
if(@docount=1) 閱讀全文
類別:sql筆記
匯入 RowCount 高效分頁 續二
由於專案經理沒同意使用sql05,所以再次優化了一下sp,其實就是改動一點點,就是為了避免模糊匹配like會引起全表檢索,所以加了強制索引,不過在sql05下測效果不好,在2000下會有一定的提公升 alter procedure enteruser ei companyfile searchent...
高效分頁(高效 通用)
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...
ACCESS高效分頁
由於access資料庫內沒有儲存過程一說.那麼實現它的分頁上效率問題一直都是麻煩事.下面一段 相當來說算了很高效的了.如果有什麼更好的方法,請多指教 謝謝 呼叫方法 string strsql select p.productid,p.proclassid,p.productname,p.profl...