原文;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的时候,或者你每次请求此页面的时候,
都自动重绘控件,你就可以用它了.讲得这么玄,其实就是说你的页面如果只是用来纯显示的话,你就可以关闭之.