点滴记录:大量数据时,系统性能的优化
数据库部分:
对于单表查询,基本没什么难度,尤其是mysql或oracle,自带的分页也就能满足简单的需求了。
但是,对于10张表关联的查询呢,这才是项目中比较常见的需求,
操作一、加索引
表之间关联的字段都要加上索引,查询结果的字段可以暂时不用加索引,
索引是双刃剑,自己把握好度的问题,加一个索引,测试一下,
看看到底哪种方法查询的速度最快,
索引加太多或加的不正确,反而会影响到性能的。
IIS部分:
1、连接池部分
队列长度:CPU忙着,其他的只能在队列等待,超出队列值,看到503错误,
适当的队列长度,不会让用户看到错误页面,
我是从1000开始的,目前已经设置到3000了。
最大工作进程数:默认是1,如果调整,建议每次增加5来测试。
连接限制:网站高级设置里,最大并发、最大带宽,IIS7已经默认最大值了,如果不是,可手动调整大点。
性能监控
window自带的性能监控挺好用的,CMD中运行perfmon.msc即可打开,
右侧空白地方右键-添加计数器,
常用计数器:
Processor time :CPU处理事件消耗的百分比
Current Connections:当前连接数
Processor Queue Length:队列长度,如果队列很多,说明CPU一直在忙,用户排队时间过长,要考虑增加进程数。
Context Switches:CPU进程间切换,如果此值上下波动是量好的表现,具体还需要深入研究。
有个小的知识点:
“比例”这一列,如果显示1.0,说明是1:1,如果显示0.1,表示1:10,自己调整看看就懂了。