小記:找到佔用CPU高的PL/SQL語句

來源:互聯網
上載者:User
    下午一個同事過來說某Linux測試伺服器超級慢,嚴重影響工作。
    登入到伺服器上使用top查看,發現oracle進程把CPU佔到了100%。
   於是用了以下步驟把導致效能問題的SQL找出來:
1、使用top找到占CPU100%的ORACLE進程的pid為1234;
2、開啟PL/SQL DEV,查詢這個進程的資訊:SELECT * FROM V$PROCESS WHERE spid=1234;

3、找到這個進程對應的會話的資訊:SELECT sid, program FROM V$SESSION s
WHERE EXISTS(SELECT 1 FROM V$PROCESS WHERE spid=1234 AND ADDR = S.PADDR);

4、從上面已經知道是哪個用戶端的哪個程式導致的了,繼續:
    找到這些會話的SQLSELECT sql_text
FROM V$SESSION a LEFT OUTER JOIN v$sqltext b ON a.sql_address=b.address
WHERE EXISTS(SELECT 1 FROM V$PROCESS WHERE spid=17518 AND ADDR = a.PADDR)
ORDER BY a.SERIAL#, b.piece

5、這個語句要更好一點,根據CPU佔用情況排序SELECT b.sql_text
FROM V$SESSION a LEFT OUTER JOIN v$sqlarea b ON a.sql_address=b.address
WHERE EXISTS(SELECT 1 FROM V$PROCESS WHERE spid=1234 AND ADDR = a.PADDR)
ORDER BY b.CPU_TIME DESC

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.