者,使用sql server 2005中的row_number()函數
declare @sql varchar(8000)
set @sql='select *'
+' from'
+' ('
+' select row_number() over (order by id desc) as rowNumber,*'
+' from Users'
+' where id>0 and name<>'''''
+' )'
+' as table1'
+' where rowNumber between '+str((@page-1)*@pagesize+1)+' AND '+str(@page*@pagesize)
+' order by id desc'
--exec (@sql)
EXEC sp_ExecuteSql @sql
(小技巧:將記錄總數保為Cache或Session來提高分頁性能。)
7、不要禁用 Web 窗體頁的緩沖
除非有特殊的原因要關閉緩沖,否則使其保持打開。禁用 Web 窗體頁的緩沖會導致大量的性能開銷。
啟用頁面輸出的緩沖區(qū)(Buffer)
如果Buffer的機制被關閉,可以用下面的方法打開。
使用程序打開頁面輸出緩存:
Response.BufferOutput = true;
使用@Page開關打開頁面輸出緩沖機制:
<%@ Page Buffer = "true" %>
使用Web.config或Machine.config配置文件的<pages>節(jié)點:
<pages buffer="true"/>
8、設置page的smart navigation屬性
smart navigation設置為true能讓用戶明顯的感覺性能提高。啟用此屬性后對客戶端和服務端影響不大.它能智能刷新需要刷新的部分。
在大多數情況下不要在代碼中設置該屬性。
在 .aspx 文件的 @ Page 指令中將 SmartNavigation 屬性設置為 true。請求該頁時,動態(tài)生成的類將設置該屬性。
Internet Explorer 5 或更高版本瀏覽器請求頁時(或稍后),智能導航將通過執(zhí)行下列功能提高用戶對該頁的操作能力:
消除導航導致的閃爍。
從一頁移動到另一頁時保持滾動位置。
保持導航之間的元素焦點。
在瀏覽器的歷史記錄中只保留最后一頁的狀態(tài)。
智能導航最適用于需要頻繁回發(fā),但是其內容在返回時不會發(fā)生顯著更改的 ASP.NET 頁。在決定是否將該屬性設置為 true 時,請仔細考慮這一點。