必赢官网某知名零售企业ERP系统,解决数据库卡

写在前面

  本篇是赤果果的产品介绍文章,同时也是向使用数据库的战友们表达一下我们是怎样一步一步打磨产品,又有什么样的远景、动力让我们一直走下去….

  八年数据库之路的感悟 这篇文章最后所提到的数据库管理产品,又经过两年的不懈努力,一群带有热情的老技术打磨,现在3.0版本已经成功上线,并有将近500家线下企业客户使用,2500家线上用户,同时也承载着上千技术爱好者的大力支持。

  在这里也向一直支持我们的技术大牛们表达感谢!!

优化阶段二(针对语句)

   再次分析解决大面积语句阻塞的系统,发现现在的情况,主要有如下几个:

  1. 内存某些时候还是存在波动,但整体IO 内存已经不是瓶颈。
  2. 系统中有SLEEPING的程序阻塞时间长
  3. 部分功能语句依然慢,消耗的资源很高。

  再次对系统调研:

  1. 执行的慢语句是什么业务,是业务功能?还是报表?还是接口?
  2. 系统中频繁且较慢的语句。
  3. 系统中阻塞的操作是什么。  

  

  调研后,我遇到了最常见也是最大的问题:
语句慢由于程序!在HIS的优化案例中就是因为程序大量使用自定义函数,我们没法改,我们巧妙的绕过。那么这次我们如何绕过?

   

  一:报表

  分析中发现程序系统中消耗最多资源的主要是报表。

  报表通过一系列复杂的查询插入到物理临时表,啥叫物理临时表?
就是非#temp 而是真真正正的插入到表中,用完在delete!

  插入在删除,中间还有跟业务表关联操作,导致报表也会阻塞业务!

  插入删除的数据量是多少? 你们猜一下??

  千万级别….

  

  二:接口

  接口程序中频繁调用业务数据并发更新频繁….导致业务受阻…

 

  三:问题代码

  代码的问题主要有两个:

  1.代码较复杂,需要细致优化。

  2.程序中存在连接泄露,简单理解成程序报错后事务不能有效处理,导致事务未提交阻塞系统

  必赢官网 1

 

  针对第一部分报表,语句更是复杂至极…这东西不是短期就可以优化的,考虑分出去

  针对第二部分接口,修改接口视图,包括写法优化、添加索引、调用频率等;

  针对第三部分业务语句进行细致优化,查询提示,计划向导、重编译等等手段…

  

  

 

SQL SERVER全面优化——-Expert for SQL Server 诊断系列

 

————–博客地址—————————————————————————————

Expert 诊断优化系列 

 

 

废话不多说,直接开整—————————————————————————————–

 

再说点什么

  生活中的便利大家也都感觉到了,随便一个不方便,可能就有人做了对应的贡献,我们也一样,我们是一群老DBA跟年轻的从业者无法拼创意、无法比精力、体力。但我们也会用我们优势的经验来贡献我们自己的一份力量。

  新入行的DBA越来越少,能踏实肯学的就少之又少,数据作为企业命脉,各个企业都面临着数据库的问题,也许还有一些时间让我们这帮老鸟发挥一些余热。

  希望大家在看完本篇以后,有兴趣的技术咖可以花些时间多尝试一下,多给我们一些宝贵的建议。

  我们会在这样的技术贡献上越走越远,越来越深入,因为我们要打造的是
No.1

 —————————————————————————————————-

如果您也遇到类似问题或者想加入我们欢迎微信交流

 必赢官网 2

注:此文章为原创,欢迎转载,请在文章页面明显位置给出此文链接!
若您觉得这篇文章还不错请点击下右下角的推荐,非常感谢!

写在前面

  记得在自己学习数据库知识的时候特别喜欢看案例,因为优化的手段容易掌握的,但是整体的优化思想很难学会的。这也是为什么自己特别喜欢看案例,今天也分享自己做的优化案例。

  之前分享过OA系统、HIS系统,今天我们来一个最常见的ERP,ERP系统各行各业都在用,不同行业也有不同的特点,博主在做研发的时候还自己写过ERP也算是比较熟悉了。

  不管是本文分享的零售类,还是鞋服门店、家居、汽车、地产等等,也不管是某友、某碟,ERP有一个共同的特点,单据流程长,业务复杂,热点表明显,数据量大,涉及众多系统接口,各种大数据的统计报表….传统行业又缺乏DBA精心管理。

  慢是普遍的!

  最近一直很忙,博客产出也少的可怜,今天整理了一下自己做过优化或各种方案的客户已经超过千家,涉及各行各业,今天分享的案例算是在这些客户中比较典型的了!没有什么高大上都是常见的问题!在之前的博客中都有过提及,那么本篇我们就结合之前的技术点来看看这个案例。学习优化手段的看官们可以参见我的优化系列:

 

2.0时代

  SaaS、云已经成为大火和无法阻挡的趋势,我们也同样开放了线上的诊断平台SQL专家云SaaS平台,免费帮助技术同行处理数据库问题,同时我们在1.0的基础上汲取各种场景、解决问题的思路,以1.0时代积累下的3000家客户运行情况提炼分析,把更多的指标,更多的问题场景融入到产品中,也得到广泛的认可。

  同时在2.0的版本中,我们也在智能化的路上前进了一大步,超过3000家的数据库运行情况,上万个问题场景,也酝酿出了
我们自动化解决问题的功能——智能加速与智能运维!

  必赢官网 3

 

 

  SaaS平台的推出,让我们接触到了更多的数据库使用者,也接触到各种不同的系统运行情况,也有很多人在SaaS平台上寻求帮助,自己的系统有问题,又对数据库不懂,无法分析。

  在SaaS平台运行的一年半里,我们大约接到几百位求助者分享给我们的运行情况,我们也为他们全面分析并解决了数据库上的棘手问题,当然更多的是小白问题….哈哈哈哈

  小到解决问题,大到针对系统现状如何规划数据层应用,这样的过程是快乐了,技术是纯粹的,没有谈钱只有技术交流…偶尔大侠赏个红包,技术团队的兄弟也出门吃顿好的…哈哈哈

分析

  系统是真的很慢,慢语句数量很多系统阻塞也很严重,确实和客户反映的慢可以吻合。那为什么这么慢?什么原因导致的?

  我总结一般性能慢常和6大因素有关:

  1.   业务压力
  2.   硬件
  3.   环境
  4.   代码
  5.   数据库内部运行因素
  6.   架构

 

 奉上一幅草图

  必赢官网 4

  系统压力:访问压力(也是我们常说的并发)其实并不大,用户连接数也没想像的那么多

  硬件:在内存和磁盘IO确实存在压力

  环境 :服务器和数据库版本什么的没什么问题,具体配置一会儿再看。

  代码 :最不想分析代码,我们留到最后

  数据库内部运行因素:从各种指标来分析,系统语句等待时间太长,导致语句完成慢,而等待主要有两部分:

  1.  硬件资源确实有压力
  2.  语句之前的阻塞太严重了,"LCK_M_",而且等待时间过长,竟然平均达到几百秒

  再分析…这么强的硬件,并不大的访问压力,竟然造成瓶颈?语句写的烂?程序实现的不好?缺索引?环境配置不对?

  下面我们来看看….

 

要做到什么?

  复杂的技术简单化、可视化、自动化、智能化
(都是被无数产品说烂掉的词),解放DBA、解放IT管理人…

优化阶段一(常规优化)

  很多时候系统慢要究其原因,难道上线时候就这么慢?那不可能,厂商根本无法交付的!那么问题来了,什么时候开始慢的?对系统做过哪些调整?

  简单的调研开始…

  我靠!!!厂商完全不配合,工程师对系统及其不熟悉,一问三不知,最近做什么改动也说不清,用户也不知道。厂商给的结论:继续加硬件….更强的IO….数据分离减小数据量!

  协调厂商完全协调不动,基本没戏了!

  既然是数据库问题,那我们就数据库下手吧!从一名数据库从业人员来说,看到这样的系统一定要先解决大面积等待问题!个人经验来看很多系统大面积等待解决系统会有个很大的提升和改善!

  配合一些常规的调优手段阶段一开始了,主要给系统大面积创建影响高开销大的索引,调整系统参数,优化tempDB等….具体不细说了,前面系列文章中都有!

 

  预期:

  一般系统上面一轮优化会有明显的改善,我认为这一轮以后系统会明显变快,语句运行环境合适,索引什么的合理资源消耗自然就少,内存和IO压力也会有所减少。

  结果:

  系统内存,IO压力趋于平稳,慢语句数量有所减少,但依然很多,阻塞依然存在,超过2分钟的语句依然很多。

  

  优化前

  必赢官网 5

 

  优化后

  必赢官网 6

 

 

  优化前

  必赢官网 7

  优化后

  必赢官网 8

 

  

发表评论

电子邮件地址不会被公开。 必填项已用*标注