>• 不要用Exception控制程序流程 • 禁用VB和Jscript动态数据类型 • 使用存储过程完成数据访问 • 只读数据访问不要使用DataSet • 关闭ASP.NET的Debug模式 • 使用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 Reference1. 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] 下一页 [C语言系列]NET 中C#的switch语句的语法 [系统软件]托拽Explore中的文件到VB.net的窗口 [系统软件]Boost库在XP+Visual C++.net中的安装 [常用软件]新配色面板:Paint.Net3.0RC1官方下载 [常用软件]用内建的“Net Meeting”聊天 [VB.NET程序]Henry的VB.NET之旅(三)—共享成员 [VB.NET程序]Henry的VB.NET之旅(二)—构造与析构 [VB.NET程序]Henry的VB.NET之旅(一)—失踪的窗体 [VB.NET程序]在托盘上显示Balloon Tooltip(VB.NET) [VB.NET程序]Henry手记-VB.NET中动态加载Treeview节点(二)
|