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

    文章

    10442

    浏览量

    206560
  • SQL
    SQL
    +关注

    关注

    1

    文章

    738

    浏览量

    43461
  • 数据库
    +关注

    关注

    7

    文章

    3591

    浏览量

    63370
  • MySQL
    +关注

    关注

    1

    文章

    775

    浏览量

    26004
  • 线程
    +关注

    关注

    0

    文章

    489

    浏览量

    19495

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

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

收藏 人收藏

    评论

    相关推荐

    LabVIEW与数据库的连接ppt教程

    点击学习>>《龙哥手把手教你学LabVIEW视觉设计》视频教程包括对工具包的介绍 Database Connectivity应用典型实例数据库的基本介绍 SQL语句使用[hide][/
    发表于 03-23 15:49

    Database数据库SQL语句

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

    如何将用sql语句数据库提取出的数组生成波形图

    求大神 指点 如何将用sql语句数据库提取出的数组生成波形图?并且可以实现单独提取某一列的数据生成波形图?
    发表于 05-24 15:28

    请教如何用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

    LabVIEW2018用SQL语句操作Microsoft Access 2010 数据库

    1、数据库的后缀必须是mdb(创建数据库时选择mdb格式)2、练习SQL语句3、知道为什么在程序中用了“条件结构”吗?
    发表于 05-18 21:04

    连接oracle数据库,封装sql执行子vi

    连接oracle数据库,封装sql执行子vi。连接oracle数据库可以安装oracle客户端,或者通过odbc的方式去连接。连接后,可通过封装的子vi,执行sql
    发表于 07-03 12:07

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

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

    区分SQL语句与主语言语句

    言编译程序编译处理目标语言程序主语言访问数据库基本步骤:第一步:打开数据库第二步:定义必要的主变量和数据通信去第三步:用SQL访问数据库,并
    发表于 10-28 08:44

    使用SQL语句操作数据库

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

    Sqlite移动嵌入式数据库Sqlite的日常SQL操作语句是什么?

    Sqlite移动嵌入式数据库Sqlite的日常SQL操作语句是什么?
    发表于 12-27 07:37

    单片机使用本地SQL数据库功能

    历史上,sql数据库都是后台的专利,底层单片机使用sql数据库是天方夜谭。很多时候,底层都需要存储一段时间的数据,例如近一年的交易
    发表于 07-01 16:57

    数据库SQL语句电子教程

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

    使用SQL语句创建数据库

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