A. 如何查看導致CPU100%的sql語句
進入 SQL活動監視器,多刷新幾次,查看哪個進程的CPU數值增長最快的連接,雙擊連接,就可以看到對應的查詢語句了
B. AWR中發現這個SQL被頻繁執行,頻率特高,什麼原因
用戶連接錯誤導致的
是不是用戶登錄特別頻繁?看看awr中的Logons值
有用戶進行頻繁的連接
遞歸 SQL ,執行次數多
C. 請問大家如果解決SQL導致的CPU佔用率過高
解決方案
將mysqld的內存庫函數替換成tcmalloc,相比ptmalloc,tcmalloc可以更好的支持高並發調用。
修改my.cnf,添加如下參數並重啟
[mysqld_safe]malloc-lib=tcmalloc
上周五早上7點執行的操作,到現在超過72小時,期間該實例沒有再出現cpu長期飆高的情形。
以下是修改前後cpu使用率對比
D. oracle awr報告cpu高怎麼看
cpu較高,一般是SQL執行頻率太快導致,看看「SQL ordered by CPU Time」中有沒有異常的SQL
E. oracle佔用cpu過高 怎麼處理
這個沒辦法處理優化,只能是提高電腦配置,或者是換其他版本的oracle,建議使用10g。
解釋:oracle運行程序本身就比較占內存,並且要啟動三個實例才可以運行,所以建議可以更換個大的內存條(最少4G),安裝64位系統。
備註:建議不用oracle的情況下可以把oracle的進程都停掉,減少內存佔用。