高性能asp.net

  所有内容全部来自平时遇到的问题及开发经验,不一定能保持及时更新,偶尔会忘.... - -


1.  使用 ! IsPostBack  来提高应用程序性能。在 Page_Load以外的事件函数中均可使用!
 2.   以entity为首的orm只有开发效率没有访问效率! 烂货! 忽略!!
 3.   连接字符串时(例如:+) 
StringBuilder 效率明显高于string
 4.   最快的空串比较方法:
 将String对象的Length属性与0比较是最快的方法:if (str.Length == 0) 
 其次是与String.Empty常量或空串比较:if (str == String.Empty)或if (str == "") 
5.   foreach效率高于for; 操作  ArrayList()时for比foreach快! 在某些情况下for更有效率 foreach更安全! 据史料记载foreach被编译成for执行
  foreach在某些情况下会被装箱和拆箱影响速度!经分析还得用for
 
6.   gridview之流有多远滚多远!
7.    EnableViewState(页面的视图状态)。如果无特殊要求设置为false。
8. repeater和前台for循环输出效率目前还存在争议.实际上相对于其它数据控件repeater消耗的资源最小!
9.  抛出异常会超级影响性能,小心使用! 传说中使用设计模式可以把性能问题减到最少(Tester-Doer,TryParse);
10. SQL:尝试使用存储过程返回多个数据集!
11. 部署后一定要禁用调试模式!
12. 减少不必要的服务器控件,能不要就不要用了!
13.绑定dropdownlist效率最高的方法:
private void initList2(DataTable dt)
{
  foreach (DataRow r in dt.Rows)
  {
    DropDownList2.Items.Add(new ListItem(r["empName"].ToString(), r["empNumber"].ToString()));
  }
}
public void initList3(DataTable dt)//这个效率最高
{
  foreach (DataRow r in dt.Rows)
  {
    DropDownList3.Items.Add(new ListItem(r[0].ToString(), r[1].ToString()));
  }
} 


 14. SQL:数据表中尽量不要有null值,用设置默认值的方法来避免null.会增加sql查询的效率
15.  SQL:
尽量避免在 where 子句中使用!=或<>操作符
16. SQL: 
尽量避免在 where 子句中使用 or 来连接条件; select id from t where num=10 or num=20  可以这样查询:  select id from t where          num=10  union all  select id from t where num=20    
17.  SQL:
in 和 not in 也要慎用;
18.  SQL:
若要提高效率,可以考虑使用全文检索代替模糊查询;
19.  SQL:
任何地方都不要使用 select * from t ,用具体的字段列表代替“*”,不要返回用不到的任何字段。  
20.  SQL:索引能提高select效率,但是会降低insert和update的效率.
一个表的索引数最好不要超过6个  
21.  SQL:
尽量使用数字型字段,若只含数值信息的字段尽量不要设计为字符型;
22.  SQL:
尽可能的使用 varchar/nvarchar 代替 char/nchar ,因为首先变长字段存储空间小,可以节省存储空间,其次对于查询来说,在一个相对较小的字段内搜索效率显然要高些。    
23.  URL 
Routing 绝对比 URL重写好用!  
24.
SqlDataReader会自动关闭,即Close()
不要对连接、DataReader 或类的  Finalize  方法中的任何其他托管对象调用  Close  或  Dispose 。在终结器中,应该仅释放类直接拥有的非托管资源,如果关闭关联的   DataReader   对象,则关联的   Connection   对象也将关闭,一定要手动关闭,多次访问数据库,运行就会报错,SqlDataReader独占连接,当使用  SqlDataReader  将关联的  SqlConnection  用于任何其他用途时,必须显式调用  Close  方法。最终解决办法: http://www.cnblogs.com/cyq1162/archive/2011/04/06/2006412.html  
--.  这里开始就不添加序号了!使用"--"代替!
--.  
用DataReader绑定列表控件的行为就是赤裸裸的耍流氓!
--.  相比Application,Cache更灵活;读取Application时需要使用 lock与unlock,会损失一些性能;建议使用Cashe,Cashe是升级到.NET后新增加的内容;
--.  SQL: 如果 在 '%XX%'的“XX”前面使用了通配符,无法使用到索引;如果查询的条件是'XX%',那倒是可以利用上索引;可是考虑使用全文索引,但是全文索引也不太好用!可以试一下优化SQL查询语句;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值