1、top
看到暫用cpu利用率較高的oracle或者相關程序。獲取程序id
2、使用如下語句查詢
select sql_text,spid,v$session.program,process from
v$sqlarea,v$session,v$process
where v$sqlarea.address=v$session.sql_address
and v$sqlarea.hash_value=v$session.sql_hash_value
and v$session.paddr=v$process.addr
and v$process.spid in (pid);
將第一步查詢到的pid輸入上面的括號裡面,用逗號分開。
3、就可以得到占用cpu比較多的語句。
.....................................
發現這個語句裡面有bug(紅色部分),以及需要優化
4、先查詢紅色部分,修正錯誤,使之正常執行然後考慮優化。
5 修正了錯誤,發現只是解決了正確性問題,cpu占用略有降低.但是還是不行 .然後建了乙個索引 .解決問題.
oracle 9i以及以後的索引使用很讓人振奮不已.sarg中的任何乙個,只要建了有效的索引,使用cbo就能起到效果,而不是之前一直認為的索引條件必須放在sarg的第乙個,並且按照索引欄位的順序.也許這是oracle中cbo實現的高明之處吧.
oracle資料庫作業系統CPU利用率居高不下
背景現象 應用系統響應速度慢,常因為堵塞鎖過多導致系統堵死,應用無法使用。用top命令檢視,cpu利用率居高不下 處理過程 檢視oracle的等待事件,select event,count from v session wait group by event 發現有21個latch cache bu...
ORACLE 資料庫的記憶體占用問題
由於oralce資料庫在使用過程中,使用記憶體會不斷增加,如果使用記憶體超過了物理記憶體,就會使用硬碟來作交換檔案,這是資料庫的效能就急劇下降.所以我們需要限制oracle使用的記憶體總量.oracle 11g 新增了乙個引數可以幫我們達到上述目的.memory max target.一般來說,一台...
Oracle資料庫CPU超高問題分析捕捉
oracle資料庫cpu超高問題分析捕捉 開始 根據程序號查詢對應的sql語句 select listagg sql text,within group order by piece from v sqltext a where a.hash value,a.address in select de...