asp.net下經(jīng)典數(shù)據(jù)庫記錄分頁代碼
更新時間:2007年04月28日 00:00:00 作者:
1、
SELECT TOP PAGESIZE NEWSTITLE
FORM NEWSINFO WHERE NEWSID NOT IN
(SELECT TOP (PAGE-1)* PAGESIZE NEWSID FROM NEWSINFO
WHERE Auditing=1 and NEWSBREED='企業(yè)新聞' order by NEWSID DESC)
AND Auditing=1 and NEWSBREED='企業(yè)新聞' order by NEWSID DESC
其中:PAGE表示當(dāng)前頁數(shù),PAGESIZE表示頁的大?。贿@里利用了NOT IN,不復(fù)合SARG,但總比一次讀取全部的記錄要好的多。
2、符合 SARG的代碼
針對本人的實例還有一個更好的方案:因為NEWSID字段是自增字段,對于NOT IN 語句進行如下的改造,并不影響結(jié)果。但速度提高了很多
SELECT TOP PAGESIZE NEWSTITLE
FORM NEWSINFO WHERE NEWSID <
(SELECT MIN(NEWSID) FROM (SELECT TOP (PAGE-1) * PAGESIZE NEWSID FROM NEWSINFO WHERE Auditing=1 and NEWSBREED='企業(yè)新聞' order by NEWSID DESC) AS TB)AND Auditing=1 and NEWSBREED='企業(yè)新聞' order by NEWSID DESC
【說明】
對于在多處使用分頁功能的web 應(yīng)用程序,把SQL語句改為存儲過程將會更好。
請大家積極參與討論分頁的算法,并把好的方案與大家分享。
SELECT TOP PAGESIZE NEWSTITLE
FORM NEWSINFO WHERE NEWSID NOT IN
(SELECT TOP (PAGE-1)* PAGESIZE NEWSID FROM NEWSINFO
WHERE Auditing=1 and NEWSBREED='企業(yè)新聞' order by NEWSID DESC)
AND Auditing=1 and NEWSBREED='企業(yè)新聞' order by NEWSID DESC
其中:PAGE表示當(dāng)前頁數(shù),PAGESIZE表示頁的大?。贿@里利用了NOT IN,不復(fù)合SARG,但總比一次讀取全部的記錄要好的多。
2、符合 SARG的代碼
針對本人的實例還有一個更好的方案:因為NEWSID字段是自增字段,對于NOT IN 語句進行如下的改造,并不影響結(jié)果。但速度提高了很多
SELECT TOP PAGESIZE NEWSTITLE
FORM NEWSINFO WHERE NEWSID <
(SELECT MIN(NEWSID) FROM (SELECT TOP (PAGE-1) * PAGESIZE NEWSID FROM NEWSINFO WHERE Auditing=1 and NEWSBREED='企業(yè)新聞' order by NEWSID DESC) AS TB)AND Auditing=1 and NEWSBREED='企業(yè)新聞' order by NEWSID DESC
【說明】
對于在多處使用分頁功能的web 應(yīng)用程序,把SQL語句改為存儲過程將會更好。
請大家積極參與討論分頁的算法,并把好的方案與大家分享。
相關(guān)文章
ASP.NET 頁面間數(shù)據(jù)傳遞方法小結(jié)
Web 頁面是無狀態(tài)的, 服務(wù)器對每一次請求都認(rèn)為來自不同用戶,因此,變量的狀態(tài)在連續(xù)對同一頁面的多次請求之間或在頁面跳轉(zhuǎn)時不會被保留。2009-12-12
常用的在數(shù)據(jù)庫中建立無限級樹形菜單的asp.net代碼
經(jīng)常在項目中遇到建立無限級樹形菜單展示的效果,這里簡單地做了一個,基本后臺代碼如下2008-09-09
asp.net 用繼承方法實現(xiàn)頁面判斷session
在做ASP項目的時候,判斷用戶是否登陸常用的方法是在每個頁面判斷session是否存在,無奈用java的時候過濾器就用的不熟。。。還是用繼承吧。汗。。。2009-09-09
Visual Studio Debug實戰(zhàn)教程之?dāng)帱c操作
眾所周知斷點對于Visual Studio調(diào)試過程是十分重要的,斷點的設(shè)置也是為了更好的進行調(diào)試。下面這篇文章主要給大家介紹了關(guān)于Visual Studio Debug實戰(zhàn)教程之?dāng)帱c操作的相關(guān)資料,需要的朋友可以參考下2018-09-09
asp.net 結(jié)合mysql存儲過程進行分頁代碼
最近用mysql + asp.net來寫網(wǎng)站,既然mysql已經(jīng)支持存儲過程了,那么像分頁這么常用的東西,當(dāng)然要用存儲過程啦2008-11-11

