打印本文 打印本文 关闭窗口 关闭窗口
也谈ASP.NET应用程序性能优化
作者:武汉SEO闵涛  文章来源:敏韬网  点击数5118  更新时间:2009/4/23 10:40:41  文章录入:mintao  责任编辑:mintao
>

          不要用Exception控制程序流程

          禁用VBJscript动态数据类型

          使用存储过程完成数据访问

          只读数据访问不要使用DataSet

          关闭ASP.NETDebug模式

          使用ASP.Net Output Cache缓冲数据

          尽量用SQL返回DataGrid需要绑定的DataSet,尽量不要对DataSet进行二次加工,特别不要对DataSet进行大量删除,实践证明这很慢。不如复制部分数据。

          尽量不要对DataSet二次加工或者在通过DataSet拼成对象集;显然,若有40000条记录就意味着要拼>=40000次的对象

          尽量把查询数据的数据库操作次数压缩到最少,尽量1-2次数据库操作就可完成;如果对查询得到的DataSet的每项数据再进行查询,那么意味着如果有40000条记录,至少要执行400001次数据库操作,加上遍历DataSet、生成对象的时间,是相当惊人的

          注意优化数据库查询操作,比如无条件查询时不要通过离散值一个一个取;

          注意限制大数据量查询操作,比如预计一个页面如果一个条件都不加会出现很多数据,则强制至少加一个查询条件;

          不要在页面加载时默认选择全部数据,尽管可以方便后续操作,但用户会以为还没有操作就这么慢

          建议尽量用比较高效的SQL代替后续复杂的DataSet二次加工

          仅在需要的时候打开数据库连接

          一旦数据库操作完毕,一定关闭连接

          在关闭连接时记得删除临时对象

          在关闭连接前,确保关闭任何用户定义事务

          若要利用连接池,不要使用应用角色(application roles)

          显示非交互性数据,使用SQLDataReader可以获得最佳性能

          通过在SQL中得到html码比用DataGrid Component格式化数据显示具有更好的性能

          一般而言,在循环中使用索引(index)比使用集合(collection)具有更好的性能。因为CLR (Common Language Runtime)有时可以根据数据索引进行优化,而集合则不然

          注意共享那些经过复杂处理或漫长查询才得到的数据

          在页面跳转时记得终止当前页面的处理

          如果页面加载或后台计算中有一些数据不相关的处理逻辑,可以考虑采用多线程;页面加载也可以考虑逐步加载(Response.Flush())

          有大量连接的字符串操作不要使用+,改用StringBuilder

 


 

7 Reference

1. http://www.microsoft.com/technet/prodtechnol/windows2000serv/technologies/iis/maintain/optimize/perflink.mspx

2.       http://www0.ccidnet.com/tech/web/2001/09/28/5

上一页  [1] [2] [3] [4] [5] [6] [7]  下一页

打印本文 打印本文 关闭窗口 关闭窗口