解決此問題的關鍵在於如何找到造成CPU使用率過高的SQL語句。步驟如下:
1、使用Process Explorer工具查看到Oracle進程,雙擊Oracle進程,在彈出的屬性窗口的Threads選項卡中查看占用CPU較高的線程號(TID)。
2、在PL/SQL工具中執行以下SQL語句:
--根據sql_id獲取對應的Sql語句(sql_text,sql_fulltext)
select *
from v$sqlarea
where sql_id in
(
--根據addr獲取sql_id
select sql_id
from v$session
where paddr in
--根據線號獲取process的addr
(select addr from v$process where spid in ('&spid:線程號'))
);
3、在上述SQL查詢語句的結果中 “sql_text"、"sql_fulltext"兩列就是要找的SQL語句。
4、根據不同的SQL語句進行調優即可。
