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



 程序报错:开始的由于系统缓冲区空间不足或队列已满问题解决办法v4M思考者日记网-束洋洋个人博客

一般有2点原因:v4M思考者日记网-束洋洋个人博客

a)系统内存不足,情况表现为空闲数低于200以下,系统句柄数大的可怕,达到10几Wv4M思考者日记网-束洋洋个人博客

b)TCP连接数不够,严重的可能导致数据库连接失败,项目部同事之前也说过这样的情况,就是此问题导致的,前提是物理內存/虛擬內存設定值都正常的情况下增加TCP连接数(可能是你留作种的原因,所以tcp的端口(UserPort)请求已经达到你pc上本地设置的界限(MaxUserPort),默认的一般比较小,正广和的这台机器可能需要活动的TCP数量太多,所以需要设置大点),可以试着修改此键值,方法如下:v4M思考者日记网-束洋洋个人博客

启动注册表编辑器,在注册表中,找到以下子项,然后单击 $参数(Parameters 翻译过来就是>>参数<<的意思)v4M思考者日记网-束洋洋个人博客

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters

在编辑菜单中,单击新建,然后添加以下注册表项:v4M思考者日记网-束洋洋个人博客

值名称: MaxUserPort v4M思考者日记网-束洋洋个人博客

值类型: 双字节 v4M思考者日记网-束洋洋个人博客

值数据: 65534 v4M思考者日记网-束洋洋个人博客

有效范围: 5000-65534 (十进制) v4M思考者日记网-束洋洋个人博客

默认值: 0x1388 (5000 十进制)v4M思考者日记网-束洋洋个人博客

退出注册表编辑器,然后重新启动计算机。v4M思考者日记网-束洋洋个人博客

 v4M思考者日记网-束洋洋个人博客

2、针对一般的数据库,具有以下几点优化法则:v4M思考者日记网-束洋洋个人博客

  1. 减少数据访问(减少硬盘访问,这个就是我们程序的事了,项目由于是老的项目,还是ASP.NET编写的,考虑到改源码起来麻烦,所以后面我经过仔细分析增加了索引)
  2. 返回更少的数据(减少网络传输或磁盘访问)
  3. 减少交互次数
  4. 减少服务器CPU及内存开销
  5. 利用更多的资源(增加资源)

一般处理这样的情况,v4M思考者日记网-束洋洋个人博客

  1. 修改SQL语句,由于项目太老,更改源码麻烦,所以我采用了增加索引,建立索引的优点:(1.大大加快数据的检索速度; 2.创建唯一性索引,保证数据库表中每一行数据的唯一性; 3.加速表和表之间的连接; 4.在使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间)
  2. 增加索引(聚集索引和唯一索引),在聚集索引中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引。 如果某索引不是聚集索引,则表中行的物理顺序与键值的逻辑顺序不匹配。与非聚集索引相比,聚集索引通常提供更快的数据访问速度。唯一索引,针对经常查询的字段,客户那边告诉我,有时间、工号和分机号。我主要对这三个经常的字段进行了增加索引。
  3. 建立索引的语法:CREATE 索引名称 ON 表名(需要创建索引的字段);

 v4M思考者日记网-束洋洋个人博客

经过这样的调优,速度最慢也可以1秒就查询出来了。好了,以上就是问题的解决方法和我个人的一些经验分享。v4M思考者日记网-束洋洋个人博客

 

(转载本站文章请注明作者和出处 思考者日记网|束洋洋个人博客 ,请勿用于任何商业用途)

『访问 思考者日记网404页面 寻找遗失儿童』

告知
  •     本站90%以上文章均属原创,部分转载已加上原作者出处。 如需转载本站文章请您务必保留本站出处!
  •     打广告评论者请自重,请为广大网友提供一个健康干净的网络空间。
  • 感谢主机屋提供网站空间;
  • 感谢万网阿里云提供域名解析;
  • 感谢EmpireCMS提供CMS系统;
  • 感谢bootstrap展示本站前端页面;
  • 感谢Glyphicons Halflings提供字体;
  • 感谢大家一直以来对本站的喜爱,感谢大家!
近期文章 建议与反馈