一次老系统的Bug解决过程

发表于:2018-6-04 11:24

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:逍遥亮    来源:博客园

  系统概要:
  1、一台数据库服务器,SQLServer,没有读写分离,没有进行任何效能的处理
  2、其中有一张Table,每天客户端大概写入30W笔数据
  3、报表查询导出功能,Table中大约 3000W笔资料,查询一周时间,大概150~200W笔数据,并生成Excel文件
  4、数据库操作使用的是ADO.NET
  Bug:
  在点击【查询导出】的按钮后,时常会抛出SQLServer的Error 信息,报表导出 NG
  解决过程:
  1、Table 的查询效能问题,建立index,结果 问题依旧
  2、因为没有进行读写分离,怀疑是否是死锁,观察数据库,不是因为死锁的问题造成的
  3、建议客户在服务器上新增硬盘,增加一块硬盘,单独供数据库使用,OK后,但问题依然发生
  4、建议客户增加服务器,使用独立的数据库服务器,读写分离,被客户Pass
  5、只能牺牲SQL查询的效能了,comm.CommandTimeout = 0; 在 ADO.NET Command时不设置timeout 限制
  至此,问题解决,只是查询导出报表的时间可能会变长一点,在不增加客户的硬件成本的情况下,客户接受,那 OK.

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号