0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

教你如何快速定位当前数据库消耗CPU最高的SQL语句

dyquk4xk2p3d 来源:良许Linux 2023-05-08 16:42 次阅读

这篇文章主要介绍怎么快速定位当前数据库消耗CPU最高的sql语句,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

如何快速定位消耗 CPU 最高的 sql 语句,怎么做?

概述

如果是Oracle数据库我们可以很容易通过sql来定位到当前数据库中哪些消耗CPU高的语句,而mysql数据库可以怎么定位呢?这里用一个简单例子说明下...

主要意思是针对定位CPU的问题,Percona增加了对通过信息TID列将processlist ID映射到OS线程ID的支持,而MySQL在5.7版本后在PERFORMANCE_SCHEMA.THREADS表加了一个THREAD_OS_ID新列来实现,以下方法适用于在其他内核正常运行时,某个特定CPU的查询过载的情况。

find out which session is using the most CPU resources in my database?

定位线程

pidstat -t -p 1 5

63cbc036-ec30-11ed-90ce-dac502259ad0.png

通过该命令我们可以定位到802、4445等线程消耗了大量的CPU,这里尽量确保在pidstat的多个样本中验证消耗是恒定的。根据这些信息,我们可以登录到数据库,并使用以下查询找出哪个MySQL线程是罪魁祸首。

定位问题sql

select*fromperformance_schema.threadswherethread_os_id=xx;select*frominformation_schema.`PROCESSLIST`whereid=threads.processlist_id

63e3cb0e-ec30-11ed-90ce-dac502259ad0.png63f57444-ec30-11ed-90ce-dac502259ad0.png

查看问题sql执行计划

这里对应看一下执行计划基本就可以判断当前数据库CPU为什么消耗这么高了...

至于优化的点只需要在dock建一个索引即可,这里就不介绍了。

64099186-ec30-11ed-90ce-dac502259ad0.png

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10824

    浏览量

    211094
  • SQL
    SQL
    +关注

    关注

    1

    文章

    759

    浏览量

    44060
  • 数据库
    +关注

    关注

    7

    文章

    3759

    浏览量

    64266
  • MySQL
    +关注

    关注

    1

    文章

    801

    浏览量

    26435
  • 线程
    +关注

    关注

    0

    文章

    504

    浏览量

    19646

原文标题:教你如何快速定位当前数据库消耗 CPU 最高的 sql 语句

文章出处:【微信号:良许Linux,微信公众号:良许Linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    数据库SQL的优化

    用户成功连接数据库之后,用户和数据库成功建立起了会话。此后,用户每通过会话发出一条SQL语句数据库系统都会对其进行一系列检查、分析、处理
    的头像 发表于 10-09 15:43 1012次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>SQL</b>的优化

    Database数据库SQL语句

    如何用一条SQL语句清空数据库中多张表中的记录?请大神帮忙,谢谢
    发表于 03-01 00:57

    请教如何用SQL语句来压缩ACCESS数据库

    通过对ACCESS数据库的“修复与压缩”会使程序的运行更加稳定和提高运行速度。——请教如何用SQL语句来压缩ACCESS数据库,只用SQL
    发表于 11-29 21:54

    轻松学会SQL server数据库SQL 语句的开发,有程序,有word讲解

    本次我用最简单的例子讲解labview和SQL serve数据库SQL 语句的开发,word 讲解了本次出现的问题及解决方案;
    发表于 07-31 14:09

    请问labview如何通过语句连接sql sever数据库

    本帖最后由 哇哈哈哈6 于 2019-4-25 08:51 编辑 labview连接sql数据库,通过语句,而不是通过“管理工具-ODBC”配置连接,试了好多语句都不对,不知道如
    发表于 04-24 18:48

    MySQL数据库Access存储读取SQL语句

    LabVIEW视频教程MySQL数据库Access存储读取SQL语句
    发表于 10-21 11:59

    使用SQL语句操作数据库

    第一步:Linux开发环境搭建第二步:安装sqlite数据库第三步:sqlite数据库使用1.sqlite部分命令2.使用SQL语句操作数据库
    发表于 11-04 06:23

    数据库SQL语句电子教程

    电子发烧友为您提供了数据库SQL语句电子教程,帮助您了解数据库 SQL语句 ,学习读懂
    发表于 07-14 17:09 0次下载

    医院SQL数据库系统语句优化

    本文就如何优化大型数据库的性能进行了一些探索,提出了优化数据库访问性能的若干策略,特别是对SQL语句进行了有效的分析设计的问题,以使其加快执行速度,减少网络传输,能更高效地工作,充分发
    的头像 发表于 02-17 20:26 5290次阅读

    使用SQL语句创建数据库的实例详细说明

      本文档的主要内容详细介绍的是使用SQL语句创建数据库的实例详细说明。
    发表于 11-07 14:35 19次下载

    5种数据库SQL语句大全详细说明

    本文档的主要内容详细介绍的是5种数据库SQL语句大全详细说明。
    发表于 11-13 15:16 8次下载

    SQL数据库中dbo注入语句大全的详细资料说明

    本文档的主要内容详细介绍的是SQL数据库中dbo注入语句大全的详细资料说明
    发表于 11-20 17:29 5次下载
    <b class='flag-5'>SQL</b><b class='flag-5'>数据库</b>中dbo注入<b class='flag-5'>语句</b>大全的详细资料说明

    使用SQL语句创建数据库

    使用SQL语句创建数据库 在今天的信息社会中,数据库是信息化建设的关键要素之一,已经成为企业和组织的重要管理工具。创建数据库
    的头像 发表于 08-28 17:09 4089次阅读

    mysql数据库的增删改查sql语句

    SQL语句,以帮助读者全面了解MySQL的基本操作。 一、增加数据 在MySQL数据库中,我们可以使用INSERT语句来向表中插入新的
    的头像 发表于 11-16 15:41 1141次阅读

    oracle执行sql查询语句的步骤是什么

    Oracle数据库是一种常用的关系型数据库管理系统,具有强大的SQL查询功能。Oracle执行SQL查询语句的步骤包括编写
    的头像 发表于 12-06 10:49 890次阅读