oracle資料庫cpu占用居高不下的解決辦法

2021-09-30 03:30:27 字數 734 閱讀 1512

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...