转
1.采用3层逻辑模型:用户界面层、业务层、数据层
2.使用最佳的Data Provider,即,sql server 就用System.Data.sqlClient,Oracle就用System.Data.OracleClient
3.读取大量数据,对返回数据不做大量处理用DataReader;需要做大量处理的用DataSet。通常情况下,DataReader比DataSet快16%。
4.数据绑定时,不要用<%# DataBinder.Eval(Container.DataItem,"字段名") %>,因为底层的反射机制会影响性能。使用<%# ((DataRowView)Container.DataItem)["字段名"] %>会提高很大性能。注意要这样用必须要在前台页面导入名称空间System.Data。<%@ Import namespace="System.Data" %>
5.若不使用PostBack的功能,请在页面级屏蔽viewstate,PostBack每次都会重新生成控件,请对控件级的ViewState屏蔽。如果希望更明确地限制viewstate的使用,可将ASP.NET配置为默认关闭:
之后需要使用viewstate的页面直接在页面指令打开即可:
<%@ Page EnableViewState="true" %>
6.缓存那些经常被访问,并且变化不大的数据。
其他一些建议:
(1). 不要使用不必要的Session。
(2). 不要使用不必要的服务器控件。
(3). 不要用Exception控制程序流程。
(4). 禁用脚本动态数据类型。
(5). 尽量使用存储过程完成数据访问。
(6). 只读数据访问不要使用DataSet。
(7). 关闭ASP.NET的DEBUG模式。
(8). 使用ASP.NET的OutPut Cache缓冲数据。
(9). 尽量用SQL返回GRIDVIEW等控件需要绑定的DataSet,尽量不要对DataSet进行二次加工,特别不要对DataSet进行大量删除,实践证明这很慢,不如复制部分数据。
(10). 尽量把数据库的数据查询操作压缩到最小,尽量1-2次查询操作就可完成。
(11). 注意优化数据库的查询操作。
(12). 不要在页面加载时默认选择全部数据,尽管可以方便后续操作,但用户会以为“啥都没干就这么慢”
(13). 仅在需要的时候打开数据库连接,用完立即关闭。在关闭连接前记得删除临时对象,确保关闭任何用户定义事务。
(14). 显示非交互性数据,DataReader可以获得最佳性能。
(15). 注意共享那些经过复杂处理或漫长查询才得到的数据。
(16). 在页面跳转时记得终止当前页面的处理。
(17). 有大量字符串操作的时候不要用+,改用StringBuilder类。