一次老系统的Bug解决过程

 系统概要:

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.

​    如果有任何疑问,欢迎添加qq群测试入门到大神 755431660 共同学习~

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、引言 数据库设计过程中表、字段等的命名规范也算是设计规范的一部分,不过设计规范更多的是为了确保数据库设计的合理...
    SnowflakeCloud阅读 41,108评论 0 48
  • 需要原文的可以留下邮箱我给你发,这里的文章少了很多图,懒得网上粘啦 1数据库基础 1.1数据库定义 1)数据库(D...
    极简纯粹_阅读 7,518评论 0 46
  • 数据仓库概念汇总 目录 一、术语............................................
    起个什么呢称呢阅读 4,341评论 2 23
  • 最近部门里两个辞职的,两个怀孕的,还有一个准备要二胎的,一时间搞得头都大了,领导说下一步看看怎么办,是否需要重新进...
    西贝悠哉阅读 168评论 0 0
  • 不是友情不是爱情,你却在心中,有时候我在想是不是每一个时间段都会出现,不是。是我莫名的跟着一种感觉走说不上来的感觉...
    心脏R阅读 217评论 0 0