CloudDBA最佳实践-TOP SQL优化分析数据库性能问题

    云数据库CloudDBA诊断报告的TOP SQL优化是非常实用的功能,我们可以通过TOP SQL去诊断数据库中各种问题,比如性能出现下降,数据库压力出现波动,下面介绍两个线上生产案例。

    一. 利用CloudDBA TOP SQL找出数据库规格升级而性能下降的元凶

    最近在协助用户进行系统重构,RDS测试选型自然成为了本项目的一个重点,但是用户在测试不同规格的时候发现大规格的实例性能居然不如小规格,4C32G规格性能比8C64G规格高出10%,其性能监控也是非常的正常,4C32G规格是8C64G规格资源消耗的一半,TPS也是相当,那问题到底出现在那里?

    CPU消耗对比:

    TPS监控:

 

    从监控上没有看出端倪后,我们怀疑用户的业务测试模型可能不一致,所以采取分析SQL审计日志来分析问题,把top sql拿出来对比就可以一目了然问题的所在,所以重新开启压测,使用我们的CloudDBA来分析SQL日志,结果让人大吃所惊,一条truncate 语句映入眼:

    8C64G规格:

    4C32G规格:

    可以看到truncate 语句在8C64G的规格中执行慢了30秒左右,这个时间恰好是整个测试相差的时间,为什么规格越大反而DDL truncate越慢?这是因为DDL语句在执行的过程中会去扫描内存中的脏页,所以内存越大脏页越多,DDL的执行时间则会越长,所以问题得以水落石出,我们可以调整数据库内存的脏页比例来缓解DDL过慢的问题。在这次问题排查中使用了很重要的SQL审计日志来发现两个实例规格的性能差异,在成千上万的SQL日志中,TOP SQL功能将所有的SQL进行收集分析,按照各种维度进行统计,帮助管理者很方便的找到问题根源所在。

    二.利用CloudDBA TOP SQL找出数据库QPS抖动的根源

    问题表现:

客户的数据库每隔半个小时出现压力抖动,需要查明什么原因引起。

    从上图可以看到该数据库的cpu压力出现来定时的抖动,查看数据库的缓存请求次数也是有定时的抖动。在这种情况下,由于数据的压力是定时出现的,所以可以在下一个定时时间点,通过show processlist进行查看数据库中有什么SQL在运行,但是这些SQL都运行非常快,根本看不到是什么SQL。这个时候需要分析审计日志,审计日志中包括来所有的SQL,所以选择某个高峰时间段的诊断报告:选择7:00~7:05和7:10~7:15两个时间段发现抖动的SQL。

    高峰时间段7:00~7:05

    高峰后时间段:7:10~7:15

    通过审计日中中TOP SQL按照执行次数最多的排序,我们可以清楚的发现出现抖动的SQL执行次数从99159次降低到25331次,最终定位该SQL是某个定时任务调用导致。

    总结

    阿里云CloudDBA诊断报告TOP SQL功能将数据库审计日志按照各种统计维度,包括执行次数,执行时间,扫描行数进行汇总排序,清晰明了的将数据库的压力进行分解,帮助系统管理员简单方便的排查数据库的各种问题。

    您可能还喜欢:

历年双11实战经历者:我们是如何做数据库性能优化及运维-CloudDBA和天象

CloudDBA初体验:SQL优化建议

阿里云数据库CloudDBA智慧解决数据库性能优化和问题诊断难题

时间: 2024-10-26 05:22:56

CloudDBA最佳实践-TOP SQL优化分析数据库性能问题的相关文章

《Oracle数据库性能优化方法论和最佳实践》——第1章 Oracle性能优化漫谈 1.1 从生活场景漫谈性能优化

第1章Oracle性能优化漫谈 1.1 从生活场景漫谈性能优化 Oracle数据库性能优化一直是一个让人既胆怯又兴奋的话题,在初级DBA眼里,这是一个神秘的领域,即使是资深的Oracle DBA,也可能无法描述清楚性能优化究竟要做什么,应达成什么目标.那么性能优化究竟是做什么的呢?简而言之,性能优化就是让我们的工作速度变快,快到让我们满意为止.自然,又有读者会问了,我们的工作是什么呢?什么程度才算快,是否可以衡量?看,头疼的问题又来了.1.1.1 从一个真实病例说起 下面是本人的真实经历,也许很

Jenkins管道最佳实践Top 10

本文讲的是Jenkins管道最佳实践Top 10[编者的话]Andy Pemberton领导CloudBees的解决方案架构团队.CloudBees是一家依赖Jenkins实现云化持续集成平台的创业公司,目前已经得到C轮融资.Andy拥有超过十年的软件交付经验,同时他也是经常发表演讲和撰写博客.本文是Andy做为Jenkins专家给出的10条Jenkins管道化使用的最佳实践. Jenkins的管道化插件对于其用户来说是个变局者.依赖于域领域语言(DSL)Groovy,管道化插件实现了脚本化.这

使用SQL来分析数据库参数(二)

拖延症的我终于接下来第二篇数据库参数的分析. 数据库的参数分析一直以来是调优中的重要一环,而感觉有时候却感觉找不到一些方法,我分析了一下,还是蛮有意思.数据库的参数分析基于下面的几个环境. 10gR2(10.2.0.5.0) 11gR2(11.2.0.4.0) 12cR1(12.1.0.2.0) 大体来说数据库的参数在Oracle中还有很大一部分没有开放,而在很多博客,技术分析中,总是会自然而然的分析到隐含参数,通过这些参数可以让我们一窥Oracle对的运行机制. 那么公开和未公开的比例有多大呢

《Oracle数据库性能优化方法论和最佳实践》——第2章 Oracle性能优化方法论的发展 2.1 基于局部命中率分析的优化方法论

第2章 Oracle性能优化方法论的发展 Oracle数据库在开发和使用过程中对数据库的性能优化极为重视,几乎在每个版本的更新中都会对可优化的数据库做出改善.不仅如此,Oracle数据库还会使用优化方法来指导性能优化,会不断推出新的性能优化方法论,并依据优化方法论持续完善其可观察的性能优化体系.从Oracle 6到现在的Oracle 12c,经历了Oracle 7.Oracle 8.Oracle 8i.Oracle 9i & R2.Oracle 10gR1 & R2.Oracle 11gR

《Oracle数据库性能优化方法论和最佳实践》——1.4 Oracle性能优化工作的分类

1.4 Oracle性能优化工作的分类 在Oracle上进行性能优化时,不同场景下的优化工作方法和内容有很大的不同.下面从实践角度来展开优化工作的分类.1.4.1 上线优化或从未达到过性能期望的系统优化如果业务系统未进行充分的性能测试就上线,那么有相当一部分会出现性能问题,不会出现性能问题的系统往往建立在有强大硬件的基础之上.这类缺乏性能设计考虑的业务系统部分或全部具有以下特点.开发人员(业务系统)假设资源是无限的,可以任意使用,忘记了任何系统都是在一个资源受限的系统中运行业务.开发人员(业务系

《Oracle数据库性能优化方法论和最佳实践》——1.7 Oracle性能优化的神话和误区

1.7 Oracle性能优化的神话和误区 Oracle性能优化工作是Oracle数据库科学最为神秘莫测的领域,自然也就会流传着各种传言和八卦.本书最主要的目的就是真正使Oracle性能优化成为一门严谨的科学,使任何阅读并且理解本书内容的读者可以比较简单地完成Oracle性能优化工作,使自己在其他人面前成为"巫师"或"神秘的对象".1.7.1 艺术和科学 从百度.Google等网站搜索"性能优化艺术",会出现大量的条目,部分Oracle性能优化的图

CloudDBA初体验:SQL优化建议

数据库诊断和优化过程具有相当的复杂性,通常需要专业的DBA来解决.但在云计算的今天,人力运维和支撑已经变得不可能,自动化,智能化运维和服务支持日益迫切. 阿里云数据库团队在这方面不断的探索和积累,产出了CloudDBA.其目的就是要把我们已知问题和最佳实践能够以最简单的方式告诉用户,把我们多年使用数据库的经验传承给用户,方便客户使用云上数据库,给客户带来直接的价值.CloudDBA同时也在服务着内部业务,4000+的数据库实例之前需要一个team的运维人员,到现在我们只有一个同学,运维效率大幅提

SQL语句优化提高数据库性能_MsSql

性能不理想的系统中除了一部分是因为应用程序的负载确实超过了服务器的实际处理能力外,更多的是因为系统存在大量的SQL语句需要优化.为了获得稳定的执行性能,SQL语句越简单越好.对复杂的SQL语句,要设法对之进行简化. 常见的简化规则如下: 1)不要有超过5个以上的表连接(JOIN) 2)考虑使用临时表或表变量存放中间结果 3)少用子查询 4)视图嵌套不要过深,一般视图嵌套不要超过2个为宜 一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出S

《Greenplum5.0 最佳实践 》SQL 转换

改变 SQL 查询 Greenplum 数据库是基于代价的查询优化,查询优化器会选择代价最小的作为执行计划.像其他的 RDBMS 优化器一样, Greenplum的查询优化器也会考虑如下因素,例如做连接操作涉及的记录数量,索引是否可用,访问数据的字段基数.查询优化器还要考虑数据的具体位置,尽可能的在当前段内执行更多的操作,然后在进行段之间的通信操作,因为在实际生产中,频繁的段间数据交换会产生集群的网络瓶颈.那么会降低集群的性能. 当查询执行要比我们想象的要慢时,我们需要去检查查询计划,这也就意味