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 替代
最准确的的优化 是看执行语句的执行时间和分析的东西 这个数据库端基本都有集成功能 这样我们目标更明确 更直接
题外话 : 其实也有很多时候系统的性能的瓶颈 不是体现的上面所说以上几种 最经常运到的 比如网络 的带宽 这使用就要网络的调优和优化 以及 网卡调优 还有服务器的配置增加等等
总之要具体情况具体分析 先判断系统的性能瓶颈在哪里 然后先解决主要的 然后在各各处理
net 关于系统性能调优了解和看法的更多相关文章
- Android系统性能调优工具介绍
http://blog.csdn.net/innost/article/details/9008691 经作者授权,发表Tieto某青年牛的一篇<程序员>大作. Android系统性能调优 ...
- linux系统性能调优第一步——性能分析(vmstat)
linux系统性能调优第一步--性能分析(vmstat) 分类: LINUX 性能调优的第一步是性能分析,下面从性能分析着手进行一些介绍,尤其对linux性能分析工具vmstat的用法和实践进行详细介 ...
- RHCA-RH442-Linux系统性能调优 (学习)
RHCA-RH442-Linux系统性能调优
- Linux操作系统性能调优的方法
http://www.cnblogs.com/L-H-R-X-hehe/p/3963442.html Linux是一套免费使用和自由传播的类Unix操作系统,Linux不同的发行版本和不同的内核对各项 ...
- Perf -- Linux下的系统性能调优工具,第 1 部分 应用程序调优的使用和示例 Tracepoint 是散落在内核源代码中的一些 hook,一旦使能,它们便可以在特定的代码被运行到时被触发,这一特性可以被各种 trace/debug 工具所使用。Perf 就是该特性的用户之一。
Perf -- Linux下的系统性能调优工具,第 1 部分 应用程序调优的使用和示例 https://www.ibm.com/developerworks/cn/linux/l-cn-perf1/i ...
- Perf Event :Linux下的系统性能调优工具
Perf Event :Linux下的系统性能调优工具 2011-05-27 10:35 刘 明 IBMDW 字号:T | T Perf Event 是一款随 Linux 内核代码一同发布和维护的性能 ...
- LAMP 系统性能调优之网络文件系统调优
LAMP 系统性能调优之网络文件系统调优 2011-03-21 09:35 Sean A. Walberg 网络转载 字号:T | T 使用LAMP系统的用户,都想把自己LAMP性能提高运行的速度提高 ...
- LAMP 系统性能调优之内核调优措施
LAMP 系统性能调优之内核调优措施 2011-03-18 11:21 Sean A. Walberg 网络转载 字号:T | T 在对系统的 Apache.PHP 和 MySQL 组件进行调优之前, ...
- 系统性能调优CPU与内存
CPU相关术语 处理器:插到系统插槽或者处理器版上的物理芯片,以核或者硬件线程的方式包含了一块或者多块CPU. 核:一颗多核处理器上的一个独立CPU实例.核的使用时处理器扩展的一种方式,有称为芯片级多 ...
随机推荐
- MapReduce程序开发之流量求和(八)
1.分析记录手机流量的日志. 2.拿到日志中的一行数据,切分各个字段,抽取出我们需要的字段:手机号,上行流量,下行流量,然后封装成kv发送出去 3.使用java中的map方法: public clas ...
- isKindOfClass:和isMemberOfClass:-b
isKindOfClass: Returns a Boolean value that indicates whether the receiver is an instance of given c ...
- [待续]Async in C# 1
异步.异步是在.net .45里面提供的一个新的方法 它主要用在.三个方面 1.网络访问 2.磁盘访问 3.延迟很长时间的步骤 它主要有2个关键字 Async Await Async 怎么工作 d ...
- call stack 如何调用
现在在处理MFC上面的BUG,比较多,刚接触堆债,自我感觉找BUG很好用,总结一下记下来: 1. VS环境在程序F5运行状态下/DEBUG/Windows/Call Stack 即可调用堆债: 2. ...
- [原创]leet code - path sum
; ; ; } } ; }};
- h.264语法结构分析
NAL Unit Stream Network Abstraction Layer,简称NAL. h.264把原始的yuv文件编码成码流文件,生成的码流文件就是NAL单元流(NAL unit Stre ...
- Android Wear开发 - 数据通讯 - 第四节 : 数据封装(解决不能序列化问题)
一. 前言 背景 一开始笔者在研究数据发送与接收的时候,看到Wear数据类DataMap除了可以put基本类型外,还有个fromBundle方法来构建一个DataMap对象.所以一口气的将原本功能上的 ...
- bootchart--检测linux启动性能的软件
bootchart--检测linux启动性能的软件 摘自http://www-128.ibm.com/developerworks/library/l-boot-faster/index.html?c ...
- poj1980
首先想到费用流,但m<=100000还是算了吧那就感觉要用dp了,首先将a,b排序贪心一下可知,a,b的配对肯定不可能出现交叉这样就可以dp了,复杂度O(nm)还是过不去在贪心一下会发现,对于a ...
- HDNOIP201206施工方案
HDNOIP201206施工方案 难度级别:A: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 c国边防军在边境某处的阵地是由n个地堡组成的. ...