记我真实的一段维护任务:程序查询慢到最快也须要15秒?

程序报错:开始的因为系统缓冲区空间不足或队列已满问题解决办法html

通常有2点缘由:
a)系统内存不足,状况表现为空闲数低于200如下,系统句柄数大的可怕,达到10几W
b)TCP链接数不够,严重的可能致使数据库链接失败,项目部同事以前也说过这样的状况,就是此问题致使的,前提是物理內存/虛擬內存設定值都正常的状况下增长TCP链接数(多是你留做种的缘由,因此tcp的端口(UserPort)请求已经达到你pc上本地设置的界限(MaxUserPort),默认的通常比较小,正广和的这台机器可能须要活动的TCP数量太多,因此须要设置大点),能够试着修改此键值,方法以下:
启动注册表编辑器,在注册表中,找到如下子项,而后单击 $参数(Parameters 翻译过来就是>>参数<<的意思) HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters
在编辑菜单中,单击新建,而后添加如下注册表项:
值名称: MaxUserPort
值类型: 双字节
值数据: 65534
有效范围: 5000-65534 (十进制)
默认值: 0x1388 (5000 十进制)
退出注册表编辑器,而后从新启动计算机。
二、针对通常的数据库,具备如下几点优化法则
  • 一、减小数据访问(减小硬盘访问,这个就是咱们程序的事了,项目因为是老的项目,仍是ASP.NET编写的,考虑到改源码起来麻烦,因此后面我通过仔细分析增长了索引)数据库

  • 二、返回更少的数据(减小网络传输或磁盘访问)服务器

  • 三、减小交互次数网络

  • 四、减小服务器CPU及内存开销tcp

  • 五、利用更多的资源(增长资源)编辑器

通常处理这样的状况,
  • 1、修改SQL语句,因为项目太老,更改源码麻烦,因此我采用了增长索引,创建索引的优势:(1.大大加快数据的检索速度; 2.建立惟一性索引,保证数据库表中每一行数据的惟一性; 3.加速表和表之间的链接; 4.在使用分组和排序子句进行数据检索时,能够显著减小查询中分组和排序的时间)ide

  • 2、增长索引(汇集索引和惟一索引),在汇集索引中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个汇集索引。 若是某索引不是汇集索引,则表中行的物理顺序与键值的逻辑顺序不匹配。与非汇集索引相比,汇集索引一般提供更快的数据访问速度。惟一索引,针对常常查询的字段,客户那边告诉我,有时间、工号和分机号。我主要对这三个常常的字段进行了增长索引。优化

  • 创建索引的语法:CREATE 索引名称 ON 表名(须要建立索引的字段);spa

通过这样的调优,速度最慢也能够1秒就查询出来了。好了,以上就是问题的解决方法和我我的的一些经验分享。

本文出自 思考者日记网,转载请保留此出处!原文地址:http://www.shuyangyang.com.cn/jishuliangongfang/shujuku/2014-03-18/197.html
相关文章
相关标签/搜索