提高性能

提高性能
  建议:
    1)尽量不使用Session
    2)尽量不使服务器端控件,ViewState
    3)使用存储过程
    4)关闭Debug
    5)只读数据不使用DataSet
    6)启用Cache
    7)尽量对数据库的操作1-2完成,减少连接次数
    8)写高效的sql语句
    9)及时地关闭连接
    10)使用StringBuilder
 ASPNET中分三层
 1)数据层
   1)使用合适的Provider,例如SQL数据库使用SqlClient
   2)尽量使用存储过程(安全,性能高是编译过的sql语句)
   3)假如是从数据读取大量数据用DataReader,它是不关闭连接的,
      对于返回大量的数据(更新,插入)使用DataSet(他是面向无连接的,
      但是他的实质其实也是使用DataReade获取数据)
   4)ExecuteNonQuery对数据更新只返回影响的行数(更新使用它
      ExecuteScalar返回第一行的第一列(统计使用)
   5)使用连接池,ADONET里面子带的,但是应该及时地释放连接,避免连接泄露
       string strconnpool="server=(loacl);database=pubs;uid=sa;pwd=1234;pooling=true";
      
  2)表示层
     1)数据邦定不使用<%#DataBinder.Eval(Container.DataItem,"username")%>
        它使用了反射机制,但是影响了性能
        使用:<@%((DataRowView)Container.DataItem)["username"]%>
     2)尽量不使用ViewState(页面级和控件级)
        全局禁用
        <configuration>
          <system.web>
            <pages enableViewState="false"/>
          </system.web>
         </configuration>
        页面禁用
         < %@Page EnableViewState="false"%>
   3)使用缓存, 客户端和服务器端缓存
     1)输入缓存
       < %@OutputCache Duration="10" VaryByParam="None"%>  10表示缓存时间
       或者
        Response.Cache.SetExpires(DataTime.Now.AddSeconds(10));
        Response.Cache.SetCacheability(HttpCacheablility.Public);
     2)数据缓存
       Cache["username"]="prolove";
       Cache.Remove("username");
       Cache.Add();
       Cache.Inset()//可以设置缓存策略(1 不经常访问缓存删除 2 时间控制,3 文件变化,缓存变化)
       例如读取XML文件
       private void ReadXml(string filenamepath)
       {
          DataView dv=(DateView)Cache["datacache"];
          if(dv==null)
          {
            DataSet ds=new DataSet;
            FileStream fs=new FileStream(filenamepath,FileMode.Open,FileAccess.Read);
            StreamReader sr=new StreamReader(fs);
            ds.ReadXml(sr);
            fs.Close();
            dv=new DataView(ds.Table[0]);
            Cache.Insert("datacache",dv,new CacheDependency(filenamepath));
          }
             dgShow.DataSource=dv;
             dgShow.DataBind();
       }
        
       
       
       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值