ITPub博客

首页 > > > 数据库优化方法论_梁敬彬 PPT

数据库优化方法论_梁敬彬 PPT

作者:兔子爱喝奶茶 时间:2019-12-14 14:18:36 0 删除 编辑

演讲主题:数据库技能四重奏:利用开发、优化措施 捕获性能瓶颈

概要分析:1.数据库划分: 1.1 管理 1.2 开发 1.3 优化 1.4 设计

2.四者关系: 联系紧密,相辅相成
经典案例实践:
3.1 风云突变幻,生产遇劫难
某日,电信生产中遇到故障,前台登录缓慢,后台应用排队等候,由于超时不少用户充值查询等都失败,导致大量的投诉,影响巨大,情况 紧急,急需处理。
3.2 技能四重奏,携手齐上阵
3.2.1.利用管理知识,定位问题所在。
首先,定位到是某些耗性能的包和SQL被定时任务不断调用引起的。
3.2.2.展现开发技巧,查找编写缺陷
接下来,通过读懂原SQL需求,发现表连接无端多连接多次,巧妙将SQL等价改写,让表连接次数降低,性能有所提升。
3.2.3.使用优化技能,捕获性能瓶颈
虽然等价改写SQL后性能大幅提升,依然没达到优化目的,因此使用优化技巧进行继续探索,查看执行计划,发现最大的问题是语句中的
DISTINCT排序写法大量物理磁盘排序,进一步观察排序的表,记录巨大,数据量重复量很大!
3.2.4.凸显设计能力,修正设计缺陷
在经历了上述改进及研究后,不仅找到了问题所在,还做了初步的改进,现在我们转向设计环境探索解决问题的方案,具体如下:

1.分析重复表的数据来源,发现来源是一个定时处理的包,逻辑中未做排重处理,导致源头数据量巨大,下游所有应用都受到影响,不得不 加DISTINCT来去重大量重复数据,因此得出必须改造源头处理逻辑,即改造包的思路。

2.通过改造源头处理包让源头表不重复(也可再设计新增过虑过的不重复表),后续去掉DISTINCT语句(且表记录小多了),物理排序消失, 且由于表记录小多了,逻辑读也大大降低,性能进一步提升,基本满足系统运行要求,收效明显!

3.精益求精,发现源头处理包另外2个设计缺陷:

3.1表字段设计不合理,改造字段,将MERGE功能巧妙应用到设计中,源头包入源头表的效率大幅提升。

3.2存在大量清除临时表的动作,设计上考虑使用全局临时表替换普通表,消除了删除的动作,同时加强了并发处理能力。

演讲嘉宾:梁敬彬:福建富士通 首席数据库专家

梁敬彬,网名wabjtam123 ITPUB版主,福建富士通公司在聘数据库专家,多年从事电信相关行业工作,负责系统架构设计、优化等工作,有着丰富的数据库管理、设计、开发经验和电信行业经验。善于总结乐于分享,组织了多次大型数据库技术培训及演讲活动,并参与编写过《剑破冰山--Oracle开发艺术》、《DBA手记2》等技术书籍。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69918097/viewspace-3161707/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-04-26

  • 博文量
    1470
  • 访问量
    11177