asp.net下經(jīng)典數(shù)據(jù)庫(kù)記錄分頁(yè)代碼
更新時(shí)間: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)前頁(yè)數(shù),PAGESIZE表示頁(yè)的大??;這里利用了NOT IN,不復(fù)合SARG,但總比一次讀取全部的記錄要好的多。
2、符合 SARG的代碼
針對(duì)本人的實(shí)例還有一個(gè)更好的方案:因?yàn)镹EWSID字段是自增字段,對(duì)于NOT IN 語(yǔ)句進(jìn)行如下的改造,并不影響結(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
【說(shuō)明】
對(duì)于在多處使用分頁(yè)功能的web 應(yīng)用程序,把SQL語(yǔ)句改為存儲(chǔ)過(guò)程將會(huì)更好。
請(qǐng)大家積極參與討論分頁(yè)的算法,并把好的方案與大家分享。
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)前頁(yè)數(shù),PAGESIZE表示頁(yè)的大??;這里利用了NOT IN,不復(fù)合SARG,但總比一次讀取全部的記錄要好的多。
2、符合 SARG的代碼
針對(duì)本人的實(shí)例還有一個(gè)更好的方案:因?yàn)镹EWSID字段是自增字段,對(duì)于NOT IN 語(yǔ)句進(jìn)行如下的改造,并不影響結(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
【說(shuō)明】
對(duì)于在多處使用分頁(yè)功能的web 應(yīng)用程序,把SQL語(yǔ)句改為存儲(chǔ)過(guò)程將會(huì)更好。
請(qǐng)大家積極參與討論分頁(yè)的算法,并把好的方案與大家分享。
相關(guān)文章
ASP.NET 頁(yè)面間數(shù)據(jù)傳遞方法小結(jié)
Web 頁(yè)面是無(wú)狀態(tài)的, 服務(wù)器對(duì)每一次請(qǐng)求都認(rèn)為來(lái)自不同用戶,因此,變量的狀態(tài)在連續(xù)對(duì)同一頁(yè)面的多次請(qǐng)求之間或在頁(yè)面跳轉(zhuǎn)時(shí)不會(huì)被保留。2009-12-12
常用的在數(shù)據(jù)庫(kù)中建立無(wú)限級(jí)樹(shù)形菜單的asp.net代碼
經(jīng)常在項(xiàng)目中遇到建立無(wú)限級(jí)樹(shù)形菜單展示的效果,這里簡(jiǎn)單地做了一個(gè),基本后臺(tái)代碼如下2008-09-09
asp.net 頁(yè)面?zhèn)髦档膸讉€(gè)方法
在網(wǎng)頁(yè)應(yīng)用程序的開(kāi)發(fā)中,頁(yè)面之間的傳值應(yīng)該是最常見(jiàn)的問(wèn)題了。2009-11-11
asp.net 用繼承方法實(shí)現(xiàn)頁(yè)面判斷session
在做ASP項(xiàng)目的時(shí)候,判斷用戶是否登陸常用的方法是在每個(gè)頁(yè)面判斷session是否存在,無(wú)奈用java的時(shí)候過(guò)濾器就用的不熟。。。還是用繼承吧。汗。。。2009-09-09
上傳圖片后使用數(shù)據(jù)庫(kù)保存圖片的示例分享
這篇文章主要介紹了上傳圖片后使用數(shù)據(jù)庫(kù)保存圖片的示例,需要的朋友可以參考下2014-03-03
Visual Studio Debug實(shí)戰(zhàn)教程之?dāng)帱c(diǎn)操作
眾所周知斷點(diǎn)對(duì)于Visual Studio調(diào)試過(guò)程是十分重要的,斷點(diǎn)的設(shè)置也是為了更好的進(jìn)行調(diào)試。下面這篇文章主要給大家介紹了關(guān)于Visual Studio Debug實(shí)戰(zhàn)教程之?dāng)帱c(diǎn)操作的相關(guān)資料,需要的朋友可以參考下2018-09-09
Web API中使用Autofac實(shí)現(xiàn)依賴注入
本文詳細(xì)講解了Web API中使用Autofac實(shí)現(xiàn)依賴注入的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03
asp.net 結(jié)合mysql存儲(chǔ)過(guò)程進(jìn)行分頁(yè)代碼
最近用mysql + asp.net來(lái)寫網(wǎng)站,既然mysql已經(jīng)支持存儲(chǔ)過(guò)程了,那么像分頁(yè)這么常用的東西,當(dāng)然要用存儲(chǔ)過(guò)程啦2008-11-11

