asp.net高性能页面制作10则

    技术2022-05-11  121

    原文;http://msdn.microsoft.com/msdnmag/issues/05/01/ASPNETPerformance/

    代码示例:http://msdn.microsoft.com/msdnmag/issues/05/01/ASPNETPerformance/default.aspx?fig=true#fig1

    内容概述:

    1.利用SqlDataReader.NextResult()返回多次结果.比如:一些SQL语句中带有多次"Select",那么我们就可以使用这个办法返回每次select的结果.

    2.介绍一个经典的分页代码,这个代码老掉牙了,尽管如此,还是值得大家看看,下面小弟贴出来:尽管他说最好不要使用Dynamic Sql来做做分页,但是我还是觉得如果每次次都要修改这个储存过程来适应新的分页是很麻烦的,我还是建议改写这个东西加入两个变量table 和fliter.弄得整天修改.这里有Dynamic Sql可以这找到代码.

    CREATE PROCEDURE northwind_OrdersPaged ( @PageIndex int, @PageSize int ) AS BEGIN DECLARE @PageLowerBound int DECLARE @PageUpperBound int DECLARE @RowsToReturn int -- First set the rowcount SET @RowsToReturn = @PageSize * (@PageIndex + 1) SET ROWCOUNT @RowsToReturn -- Set the page bounds SET @PageLowerBound = @PageSize * @PageIndex SET @PageUpperBound = @PageLowerBound + @PageSize + 1 -- Create a temp table to store the select results CREATE TABLE #PageIndex ( IndexId int IDENTITY (1, 1) NOT NULL, OrderID int ) -- Insert into the temp table INSERT INTO #PageIndex (OrderID) SELECT OrderID FROM Orders ORDER BY OrderID DESC -- Return total count SELECT COUNT(OrderID) FROM Orders -- Return paged results SELECT O.* FROM Orders O, #PageIndex PageIndex WHERE O.OrderID = PageIndex.OrderID AND PageIndex.IndexID > @PageLowerBound AND PageIndex.IndexID < @PageUpperBound ORDER BY PageIndex.IndexID END 3.使用Connetion pooling增强sql server缓冲.简单地在连接字符串加入:"Data Source=192.168.1.2;.....;pooling=true;"便可使用此功能. 4.考虑加入最大可能的Cache体系.Cache有几种办法,HttpContext.Cache 和 Page.Cache 和局部Cache...以及Database的Cache.其中Database的Cache可以参考这篇精华文章 5.每一个Request Cache他说自己再Communicate Server Start kit开发了一个控件,对HttpContext.Current.Request自动进行Cache,这个Start kit可以再www.asp.net上找到. 6.后台处理讲了一大堆,但是我还是不知道他说什么,大概是说搜索系统和email系统中,利用timer自动处理一些日志. 7.Page Out Cache他说很多人不懂的使用这个Cache,这个Cache什么时候用?主要是当需要用到HttpMedule or HttpHandler输出一些内容的时候,OutPut Cache就是对这个起作用.simply use: <%@ Page OutputCache VaryByParams="none" Duration="60" %> 就可以建立了. 8.IIs6它说IIS5远远不如IIS6,IIS6 more feature . 9.利用gZip压缩交换数据包它说尽管IIS6支持gZip, 但是却没有一个图形界面方便操作,关于怎么配置,它又指向了另一篇文章,我就懒得贴了 10.关闭ViewState你可以这么做:<%@ Page EnableViewState="false" %> 但是考虑什么需要关闭这个,就是你的页面实际上并不需要postback的时候,或者你每次请求此页面的时候,都自动重绘控件,你就可以用它了.讲得这么玄,其实就是说你的页面如果只是用来纯显示的话,你就可以关闭之.

    最新回复(0)