0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

教你如何快速定位當前數(shù)據(jù)庫消耗CPU最高的SQL語句

dyquk4xk2p3d ? 來源:良許Linux ? 2023-05-08 16:42 ? 次閱讀

這篇文章主要介紹怎么快速定位當前數(shù)據(jù)庫消耗CPU最高的sql語句,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

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

概述

如果是Oracle數(shù)據(jù)庫我們可以很容易通過sql來定位到當前數(shù)據(jù)庫中哪些消耗CPU高的語句,而mysql數(shù)據(jù)庫可以怎么定位呢?這里用一個簡單例子說明下...

主要意思是針對定位CPU的問題,Percona增加了對通過信息TID列將processlist ID映射到OS線程ID的支持,而MySQL在5.7版本后在PERFORMANCE_SCHEMA.THREADS表加了一個THREAD_OS_ID新列來實現(xiàn),以下方法適用于在其他內(nèi)核正常運行時,某個特定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的多個樣本中驗證消耗是恒定的。根據(jù)這些信息,我們可以登錄到數(shù)據(jù)庫,并使用以下查詢找出哪個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執(zhí)行計劃

這里對應看一下執(zhí)行計劃基本就可以判斷當前數(shù)據(jù)庫CPU為什么消耗這么高了...

至于優(yōu)化的點只需要在dock建一個索引即可,這里就不介紹了。

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

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10804

    瀏覽量

    210826
  • SQL
    SQL
    +關(guān)注

    關(guān)注

    1

    文章

    753

    瀏覽量

    44032
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3752

    瀏覽量

    64229
  • MySQL
    +關(guān)注

    關(guān)注

    1

    文章

    797

    瀏覽量

    26399
  • 線程
    +關(guān)注

    關(guān)注

    0

    文章

    503

    瀏覽量

    19634

原文標題:教你如何快速定位當前數(shù)據(jù)庫消耗 CPU 最高的 sql 語句

文章出處:【微信號:良許Linux,微信公眾號:良許Linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    數(shù)據(jù)庫SQL的優(yōu)化

    用戶成功連接數(shù)據(jù)庫之后,用戶和數(shù)據(jù)庫成功建立起了會話。此后,用戶每通過會話發(fā)出一條SQL語句,數(shù)據(jù)庫系統(tǒng)都會對其進行一系列檢查、分析、處理
    的頭像 發(fā)表于 10-09 15:43 ?1004次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>SQL</b>的優(yōu)化

    Database數(shù)據(jù)庫SQL語句

    如何用一條SQL語句清空數(shù)據(jù)庫中多張表中的記錄?請大神幫忙,謝謝
    發(fā)表于 03-01 00:57

    請教如何用SQL語句來壓縮ACCESS數(shù)據(jù)庫

    通過對ACCESS數(shù)據(jù)庫的“修復與壓縮”會使程序的運行更加穩(wěn)定和提高運行速度。——請教如何用SQL語句來壓縮ACCESS數(shù)據(jù)庫,只用SQL
    發(fā)表于 11-29 21:54

    輕松學會SQL server數(shù)據(jù)庫SQL 語句的開發(fā),有程序,有word講解

    本次我用最簡單的例子講解labview和SQL serve數(shù)據(jù)庫SQL 語句的開發(fā),word 講解了本次出現(xiàn)的問題及解決方案;
    發(fā)表于 07-31 14:09

    請問labview如何通過語句連接sql sever數(shù)據(jù)庫

    本帖最后由 哇哈哈哈6 于 2019-4-25 08:51 編輯 labview連接sql數(shù)據(jù)庫,通過語句,而不是通過“管理工具-ODBC”配置連接,試了好多語句都不對,不知道如
    發(fā)表于 04-24 18:48

    MySQL數(shù)據(jù)庫Access存儲讀取SQL語句

    LabVIEW視頻教程MySQL數(shù)據(jù)庫Access存儲讀取SQL語句
    發(fā)表于 10-21 11:59

    使用SQL語句操作數(shù)據(jù)庫

    第一步:Linux開發(fā)環(huán)境搭建第二步:安裝sqlite數(shù)據(jù)庫第三步:sqlite數(shù)據(jù)庫使用1.sqlite部分命令2.使用SQL語句操作數(shù)據(jù)庫
    發(fā)表于 11-04 06:23

    數(shù)據(jù)庫SQL語句電子教程

    電子發(fā)燒友為您提供了數(shù)據(jù)庫SQL語句電子教程,幫助您了解數(shù)據(jù)庫 SQL語句 ,學習讀懂
    發(fā)表于 07-14 17:09 ?0次下載

    醫(yī)院SQL數(shù)據(jù)庫系統(tǒng)語句優(yōu)化

    本文就如何優(yōu)化大型數(shù)據(jù)庫的性能進行了一些探索,提出了優(yōu)化數(shù)據(jù)庫訪問性能的若干策略,特別是對SQL語句進行了有效的分析設(shè)計的問題,以使其加快執(zhí)行速度,減少網(wǎng)絡(luò)傳輸,能更高效地工作,充分發(fā)
    的頭像 發(fā)表于 02-17 20:26 ?5284次閱讀

    使用SQL語句創(chuàng)建數(shù)據(jù)庫的實例詳細說明

      本文檔的主要內(nèi)容詳細介紹的是使用SQL語句創(chuàng)建數(shù)據(jù)庫的實例詳細說明。
    發(fā)表于 11-07 14:35 ?19次下載

    5種數(shù)據(jù)庫SQL語句大全詳細說明

    本文檔的主要內(nèi)容詳細介紹的是5種數(shù)據(jù)庫SQL語句大全詳細說明。
    發(fā)表于 11-13 15:16 ?8次下載

    SQL數(shù)據(jù)庫中dbo注入語句大全的詳細資料說明

    本文檔的主要內(nèi)容詳細介紹的是SQL數(shù)據(jù)庫中dbo注入語句大全的詳細資料說明
    發(fā)表于 11-20 17:29 ?5次下載
    <b class='flag-5'>SQL</b><b class='flag-5'>數(shù)據(jù)庫</b>中dbo注入<b class='flag-5'>語句</b>大全的詳細資料說明

    使用SQL語句創(chuàng)建數(shù)據(jù)庫

    使用SQL語句創(chuàng)建數(shù)據(jù)庫 在今天的信息社會中,數(shù)據(jù)庫是信息化建設(shè)的關(guān)鍵要素之一,已經(jīng)成為企業(yè)和組織的重要管理工具。創(chuàng)建數(shù)據(jù)庫
    的頭像 發(fā)表于 08-28 17:09 ?4071次閱讀

    mysql數(shù)據(jù)庫的增刪改查sql語句

    SQL語句,以幫助讀者全面了解MySQL的基本操作。 一、增加數(shù)據(jù) 在MySQL數(shù)據(jù)庫中,我們可以使用INSERT語句來向表中插入新的
    的頭像 發(fā)表于 11-16 15:41 ?1116次閱讀

    oracle執(zhí)行sql查詢語句的步驟是什么

    Oracle數(shù)據(jù)庫是一種常用的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),具有強大的SQL查詢功能。Oracle執(zhí)行SQL查詢語句的步驟包括編寫
    的頭像 發(fā)表于 12-06 10:49 ?876次閱讀