net 关于系统性能调优了解和看法

  系统性能调优这是每个大中型项目的必要手段,当系统运行积累到一定量的时候 这个时候就需要一个质变的过程那这个时候就少不了优化和调整 (前几天看了一篇文章 感觉写的挺好,也挺实在的  链接:http://www.csdn.net/article/2012-06-21/2806814) 今天的这个纯粹就是归纳他人的东西 作为自己的理解提供参考 (写的不好请大家指点一二) 

       本人是万千程序员的一员  先从程序这块本身说起 :

   一:代码调优

       1)字符串的问题  比如 时间类型建议不要字符串来存储  这样后期报表查询的时候 还用时间转换函数来处理 而且字符串来处理 他的select 是比较慢的

  还有一些流程的状态码  建议不要用中文的字符串来存储 尽量用int 类型  这样  读取的时候也快   尽量少用 使用StringBuilder做字符串连接

   例如: 最快的空串比较方法  将String对象的Length属性与0比较是最快的方法:if (str.Length == 0)
    其次是与String.Empty常量或空串比较:if (str == String.Empty)或if (str == "")

       2)新建对象的问题    就是要给内存分配空间  循环创建对象这就是要分配内存  这对服务器来说是很吃紧的 业务逻辑能少循环就少循环  避免不必要的对象创建

       3)语法问题  能用 if--else if --else if  不要一直if  尽可能的让程序快速的走我们要的逻辑

       4 )不要为了友好把系统的异常信息全部都灭失  对于系统定位问题和为了一个健壮的系统 是一个方向  应该让程序员少走弯路 近快尽早的解决问题

       5)ado数据访问这块   访数据处理应该单独的一层 能在数据层一次处理的就一次处理 不要让客户端和服务器频繁的交互  ,SQL使用绑定变量的方式 进行参数操作尽量不要SQL拼接 这样效率低下  数据不是时时交换性很强的数据可以采用缓存来处理 这样对数据库来说是一种解脱  数据库连接(Connection )是一种共享资源,并且打开和关闭的开销较大。Ado.net默认启用了连接池机制  如果代码中Open 就一定要Close 和 Dispose () 注意 Dispose才是真正的释放连接的资源 多使用一些存储过程  这样SQL 通用性 和拓展性会强很用

   二: 控件上 :ASP.net 这块尽量 少用服务器控件 (个人感觉兼容性是个很大的问题) 本身他的处理就是提交到服务器才能处理的一个过程   还有一些数据绑定的控件

GridView、DataList、DetailsView、ListView、Repeater 这些控件会一次加载数据读到内存中   这对分页来说的是很方便但是对数据库来说的就比较大的压力的

有些数据不是用户想要的数据的时候 全部加载 这样就浪费了资源

  三 :数据库语句 

  1)在经常查询的字段上建立索引  2)避免全表扫描  要什么字段查什么字段  3) 除非某些业务逻辑没有主键   在建表的时候有必要的时候加上主键
   4)尽量不要用外键    这样处理数据库处理业务逻辑 数据就会判断   这样大数量的时候对数据库性能就弱了  有些判断可以用前台语句的判断处理

   5) 尽量少用 in 和 not  in   可以替代的有  exists  和 not exists      

    6) 有用到业务组合的时候  少用的UNION ALL  用 UNION

   7) WHERE子句中的连接顺序   ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾.  这很重要    这点你在开发中 经常被忽略

   8) 使用表的别名     直接查询想要别名的的字段  不要让搜索引擎来猜

    9)Order By语句加在索引列,最好是主键PK上。

   10 ) 不要用Having,因为其要遍历所有的记录。性能差得不能再差   用where 替代

  最准确的的优化  是看执行语句的执行时间和分析的东西  这个数据库端基本都有集成功能    这样我们目标更明确 更直接

  题外话 :  其实也有很多时候系统的性能的瓶颈 不是体现的上面所说以上几种  最经常运到的  比如网络 的带宽 这使用就要网络的调优和优化  以及 网卡调优 还有服务器的配置增加等等

  总之要具体情况具体分析 先判断系统的性能瓶颈在哪里 然后先解决主要的 然后在各各处理

 

 

  

 

 

  

  

  

 

 

 

   

    

   

   

      

    

   

 

    

posted @ 2015-11-30 21:24  北泽羽〃南宫月  阅读(265)  评论(0编辑  收藏  举报