性能提高的技巧

1.避免不必要的执行操作

 

   Page_Load 和 IsPostBack

 

void Page_Load(Object sender, EventArgs e) {

         // ...set up a connection and command here...

         if (!Page.IsPostBack) {

             String query = "select * from Authors where FirstName like '%JUSTIN%'";

             myCommand.Fill(ds, "Authors");

             myDataGrid.DataBind();

         }

     }

     void Button_Click(Object sender, EventArgs e) {

         String query = "select * from Authors where FirstName like '%BRAD%'";

         myCommand.Fill(ds, "Authors");

         myDataGrid.DataBind();

     }

 

关闭不必要的Session状态

 

<%@ Page EnableSessionState="false" %>

 

注意使用Server Control

不必要时可以不使用Server Control

不必要时可以关闭ViewState

 

<asp:datagrid EnableViewState="false“ runat="server"/> 

 

<%@ Page EnableViewState="false" %>

 

不要用Exception控制程序流程

 

try { 

 

result = 100 / num;

}

catch (Exception e) { 

result = 0;

}

if (num != 0) 

result = 100 / num;

else

   result = 0; 

 

禁用VB和JScript动态数据类型

 

<%@ Page Language="VB" Strict="true" %>

 

使用存储过程数据访问

只读数据访问不要使用DataSet

使用SqlDataReader代替DataSet

SqlDataReader是read-only, forward-only

关闭ASP.NET的Debug模式

使用ASP.NET Output Cache缓冲数据

页面缓冲

< % @ OutputCache%>

Duration

VaryByParam

片断缓冲

VaryByControl

数据缓冲

过期依赖条件

 

Cache.Insert("MyData", Source, new CacheDependency(Server.MapPath("authors.xml")));

 

Cache.Insert("MyData", Source, null,

              DateTime.Now.AddHours(1), TimeSpan.Zero);

Cache.Insert("MyData", Source, null, DateTime.Maxvalue,

              TimeSpan.FromMinutes(20));

 

存储过程,那就不用说了

***************************************

页面最好静态的

全局缓存要做好  

别太多的包含文件

能用JS实现的效果都用JS实现

能在客户端实现的就用

分页使用好的存储过程,其他的也尽量使用存储过程

少用些耗费资源的控件,减少回发

记得销毁数据库连接

不要把所有内容都放在大表格中 而是尽量以横向分段,一段为一个表格

***************************************

能用html的就不要用aspx了

能用javascript就不要用cs了

datagrid能不用就不用

session、viewstate、Server Control能不用就关

存储过程、缓存会用就用,不会就学

***************************************

只读数据使用datareader,很多的数据库操作使用存储过程,

使用<% @outputcache Duration=60 VaryByParam="*"%>进行缓存

关闭debug模式

正确使用索引

if (!Page.IsPostBack)进行绑定不需要回传的代码

图片不要太精确

主页数据查询比较多但更新不常用的可以使用aspx动态生成html页面

控件不需要经常编程的 比如输入控件等都使用HTML控件

开通镜像服务

***************************************

大型门户网站asp.net实现的注意事项:

1. 不要用服务器端控件

2. 全面禁用asp.net的一些页面级新特性

3. web.config里的debug要为false,并且dll文件编译是要生成为release版本的

4. 尽量不要用dataset。除非用到嵌套循环

5. 运行在win2003企业版上。

6. 用sqlclient或oracleclient访问数据库

这些是asp.net开发大型网站必须要重视的几点,其它一些就是静态页面啊和硬件上的一些问题,这些跟其它大型网站诸如此类

补充:

1、转向用Server.Transfer,不用Response.Direct

2、ADO对象在一次使用过程中不要重复打开创建,尽量使用一个Connection、一个Command、一个DataReader,并且记得不再调用数据库数据时马上关闭、释放ADO对象

3、数据集采用要多少给多少,杜绝不分字段不分页