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

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介: CloudDBA核心功能是优化数据库性能,本文通过两个案例介绍利用诊断报告的TOP SQL语句找出数据库问题根源
    云数据库CloudDBA诊断报告的TOP SQL优化是非常实用的功能,我们可以通过TOP SQL去诊断数据库中各种问题,比如性能出现下降,数据库压力出现波动,下面介绍两个线上生产案例。

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

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

    CPU消耗对比:
CloudDBA TOP SQL优化性能1
CloudDBA TOP SQL优化性能2

    TPS监控:
CloudDBA TOP SQL优化性能3
  CloudDBA TOP SQL优化性能4

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

    8C64G规格:
CloudDBA TOP SQL优化性能5

    4C32G规格:
CloudDBA TOP SQL优化性能6

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

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

    问题表现:
客户的数据库每隔半个小时出现压力抖动,需要查明什么原因引起。
CloudDBA TOP SQL优化性能7
CloudDBA TOP SQL优化性能8

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

    高峰时间段7:00~7:05
CloudDBA TOP SQL优化性能9

    高峰后时间段:7:10~7:15
CloudDBA TOP SQL优化性能10

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


    总结

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

    您可能还喜欢:

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
3月前
|
SQL 开发框架 .NET
ASP.NET连接SQL数据库:详细步骤与最佳实践指南ali01n.xinmi1009fan.com
随着Web开发技术的不断进步,ASP.NET已成为一种非常流行的Web应用程序开发框架。在ASP.NET项目中,我们经常需要与数据库进行交互,特别是SQL数据库。本文将详细介绍如何在ASP.NET项目中连接SQL数据库,并提供最佳实践指南以确保开发过程的稳定性和效率。一、准备工作在开始之前,请确保您
326 3
|
21天前
|
SQL Oracle 数据库
使用访问指导(SQL Access Advisor)优化数据库业务负载
本文介绍了Oracle的SQL访问指导(SQL Access Advisor)的应用场景及其使用方法。访问指导通过分析给定的工作负载,提供索引、物化视图和分区等方面的优化建议,帮助DBA提升数据库性能。具体步骤包括创建访问指导任务、创建工作负载、连接工作负载至访问指导、设置任务参数、运行访问指导、查看和应用优化建议。访问指导不仅针对单条SQL语句,还能综合考虑多条SQL语句的优化效果,为DBA提供全面的决策支持。
57 11
|
1月前
|
SQL 关系型数据库 MySQL
MySQL导入.sql文件后数据库乱码问题
本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
|
1月前
|
SQL 监控 安全
SQL Servers审核提高数据库安全性
SQL Server审核是一种追踪和审查SQL Server上所有活动的机制,旨在检测潜在威胁和漏洞,监控服务器设置的更改。审核日志记录安全问题和数据泄露的详细信息,帮助管理员追踪数据库中的特定活动,确保数据安全和合规性。SQL Server审核分为服务器级和数据库级,涵盖登录、配置变更和数据操作等事件。审核工具如EventLog Analyzer提供实时监控和即时告警,帮助快速响应安全事件。
|
2月前
|
SQL 数据采集 监控
局域网监控电脑屏幕软件:PL/SQL 实现的数据库关联监控
在当今网络环境中,基于PL/SQL的局域网监控系统对于企业和机构的信息安全至关重要。该系统包括屏幕数据采集、数据处理与分析、数据库关联与存储三个核心模块,能够提供全面而准确的监控信息,帮助管理者有效监督局域网内的电脑使用情况。
40 2
|
2月前
|
SQL Java 数据库连接
canal-starter 监听解析 storeValue 不一样,同样的sql 一个在mybatis执行 一个在数据库操作,导致解析不出正确对象
canal-starter 监听解析 storeValue 不一样,同样的sql 一个在mybatis执行 一个在数据库操作,导致解析不出正确对象
|
3月前
|
SQL 数据库
SQL数据库基础语法入门
[link](http://www.vvo.net.cn/post/082935.html)
|
3月前
|
SQL 存储 监控
串口调试助手连接SQL数据库的技巧与方法
串口调试助手是电子工程师和软件开发人员常用的工具,它能够帮助用户进行串口通信的调试和数据分析
|
3月前
|
SQL 存储 数据采集
如何把问卷录入SQL数据库
将问卷数据录入SQL数据库是一个涉及数据收集、处理和存储的过程
|
4月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
下一篇
开通oss服务