最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Oracle進(jìn)程占用CPU100%的問題分析及解決方法

 更新時間:2024年08月22日 09:18:20   作者:Z.Virgil  
這篇文章主要介紹了Oracle進(jìn)程占用CPU100%的問題分析及解決方法,文中通過代碼示例和圖文結(jié)合的方式給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下

問題現(xiàn)象

Linux環(huán)境,數(shù)據(jù)庫CPU一直處于100%。業(yè)務(wù)系統(tǒng)運(yùn)行很慢。Top命令結(jié)果如下:

問題分析

方法1

根據(jù)上圖中的oracle進(jìn)程在操作系統(tǒng)對應(yīng)的 PID號 :  如  6999,8100 等

通過下面的SQL,查詢

select s.SQL_HASH_VALUE, s.SQL_ADDRESS
  from v$session s, v$process p
 where s.PADDR = p.ADDR
   and p.SPID = '6999' ---換成相關(guān)的pid值

然后,將 查詢出的 SQL_HASH_VALUE ,SQL_ADDRESS 對應(yīng)代入下面的sql,或者只用其中一個也可以。

select *
  from v$sqltext t
 where (t.HASH_VALUE = ' s.SQL_HASH_VALUE ' or --自行替換上述查的值
       t.ADDRESS = ' s.SQL_ADDRESS ') --自行替換上述查的值
 order by piece

方法2

通過如下SQL查詢在數(shù)據(jù)庫中執(zhí)行緩慢的sql

SELECT /*+rule*/
 S.SQL_ID,
 S.SID,
 s.BLOCKING_SESSION,
 S.SERIAL#,
 S.USERNAME,
 W.EVENT,
 W.SECONDS_IN_WAIT,
 W.WAIT_TIME,
 S.LAST_CALL_ET,
 S.STATUS,
 S.CLIENT_INFO,
 Q.SQL_TEXT,
 Q.HASH_VALUE,
 Q.ADDRESS,
 'alter system kill session ''' || S.SID || ',' || S.SERIAL# ||
 ''' immediate;'
  FROM V$SESSION_WAIT W, V$SESSION S, V$SQL Q
 WHERE W.SID = S.SID
   AND Q.HASH_VALUE = S.SQL_HASH_VALUE
   AND W.EVENT NOT LIKE '%message from client%'
   AND S.SID >= 6
 ORDER BY LAST_CALL_ET DESC;

發(fā)現(xiàn)耗時sql如下

--- SQL-1  
--- 這個 SQL 語句用于獲取特定用戶活動會話相關(guān)的執(zhí)行計劃,并以一種特定的格式展示這些信息
select *
  from (select hash_value || '***' ||
               rpad('|' || substr(lpad(' ', 1 * (depth - 1)) || operation ||
                                  decode(options, null, '', ' ' || options),
                                  1,
                                  32),
                    33,
                    ' ') || '|' ||
               rpad(decode(id,
                           0,
                           '----- ' || to_char(hash_value) || ' -----',
                           substr(decode(substr(object_name, 1, 7),
                                         'SYS_LE_',
                                         null,
                                         object_name) || ' ',
                                  1,
                                  20)),
                    21,
                    ' ') || '|' ||
               lpad(decode(cardinality,
                           null,
                           ' ',
                           decode(sign(cardinality - 1000),
                                  -1,
                                  cardinality || ' ',
                                  decode(sign(cardinality - 1000000),
                                         -1,
                                         trunc(cardinality / 1000) || 'K',
                                         decode(sign(cardinality - 1000000000),
                                                -1,
                                                trunc(cardinality / 1000000) || 'M',
                                                trunc(cardinality / 1000000000) || 'G')))),
                    7,
                    ' ') || '|' ||
               lpad(decode(bytes,
                           null,
                           ' ',
                           decode(sign(bytes - 1024),
                                  -1,
                                  bytes || ' ',
                                  decode(sign(bytes - 1048576),
                                         -1,
                                         trunc(bytes / 1024) || 'K',
                                         decode(sign(bytes - 1073741824),
                                                -1,
                                                trunc(bytes / 1048576) || 'M',
                                                trunc(bytes / 1073741824) || 'G')))),
                    6,
                    ' ') || '|' ||
               lpad(decode(cost,
                           null,
                           ' ',
                           decode(sign(cost - 10000000),
                                  -1,
                                  cost || ' ',
                                  decode(sign(cost - 1000000000),
                                         -1,
                                         trunc(cost / 1000000) || 'M',
                                         trunc(cost / 1000000000) || 'G'))),
                    8,
                    ' ') || '|' as "Explain plan"
          from v$sql_plan
         where hash_value in (select s.sql_hash_value
                                from v$session s
                               where s.username = upper('[user]')
                                 and s.status = 'ACTIVE'
                                 and s.last_call_et > 10))
 
--- SQL-2
--- 監(jiān)控和分析數(shù)據(jù)庫中活動會話的執(zhí)行情況
select s.client_identifier,
       s.sid,
       s.serial#,
       sql.sql_fulltext,
       s.last_call_et,
       s.event,
       sql.SQL_ID,
       child_number,
       s.sql_hash_value
  from v$session s, v$sql sql
 where s.sql_address = sql.ADDRESS
   and s.username = upper('[user]')
   and s.status = 'ACTIVE'
   and s.last_call_et > 10
 order by sid

方法3

使用AWR查看耗時SQL

Oracle>sqlplus  “/as sysdba”
 
SQL>@?/rdbms/admin/awrrpt.sql

查詢SQL ordered by Elapsed Time

查詢SQL ordered by CPU Time 

相關(guān)SQL

根據(jù)awr的報告 ,也可以看出, 耗費(fèi)CPU的 SQL 時 在awr中 ,可以 通過 SQL ID找到當(dāng)時執(zhí)行時對應(yīng)的執(zhí)行計劃:

select * from table(dbms_xplan.display_awr('6h6zz42n9rmnw'));

解決方案

1、經(jīng)過溝通,發(fā)現(xiàn)相關(guān)的SQL是由于NMC調(diào)用了Oracle監(jiān)控腳本導(dǎo)致的。

nmc\server\conf\monitor.properties 文件中配置的監(jiān)控腳本 。注釋掉即可 。

2、停止NMC,殺掉相關(guān)數(shù)據(jù)庫會話。

以上就是Oracle進(jìn)程占用CPU100%的問題分析及解決方法的詳細(xì)內(nèi)容,更多關(guān)于Oracle進(jìn)程占用CPU100%的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Oracle數(shù)據(jù)庫事務(wù)的開啟與結(jié)束詳解

    Oracle數(shù)據(jù)庫事務(wù)的開啟與結(jié)束詳解

    事務(wù)是一個整體,這些操作要么全部執(zhí)行成功,要么全部不執(zhí)行,下面這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫事務(wù)的開啟與結(jié)束的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • Oracle11g audit審計配置全過程

    Oracle11g audit審計配置全過程

    Oracle審計功能是數(shù)據(jù)庫安全管理的重要組成部分,能夠幫助管理員監(jiān)控和記錄數(shù)據(jù)庫操作,確保安全和合規(guī),審計分為標(biāo)準(zhǔn)審計、細(xì)粒度審計和統(tǒng)一審計等類型,可通過設(shè)置AUDIT_TRAIL參數(shù)和相關(guān)命令開啟和配置,同時,審計記錄需要定期查看和清理,以維護(hù)系統(tǒng)性能和存儲空間
    2024-10-10
  • Oracle阻塞(blockingblocked)實(shí)例詳解

    Oracle阻塞(blockingblocked)實(shí)例詳解

    這篇文章主要介紹了Oracle阻塞(blockingblocked),需要的朋友可以參考下
    2014-07-07
  • oracle中sql 正則寫法詳解

    oracle中sql 正則寫法詳解

    Oracle中使用正則表達(dá)式需先使用REGEXP_LIKE函數(shù)來匹配字符串。正則表達(dá)式的語法與一般正則表達(dá)式相似,但具體的寫法也受不同版本的Oracle環(huán)境不同,這篇文章主要介紹了oracle中sql 正則怎么寫,需要的朋友可以參考下
    2023-04-04
  • 刪除EM,強(qiáng)制結(jié)束EM進(jìn)程后,啟動數(shù)據(jù)庫ORA-00119,ORA-00132報錯的解決方法

    刪除EM,強(qiáng)制結(jié)束EM進(jìn)程后,啟動數(shù)據(jù)庫ORA-00119,ORA-00132報錯的解決方法

    通過emca -deconfig dbcontrol db -repos drop命令刪除EM資料庫時,很長時間沒有刪除完成,期間數(shù)據(jù)庫連接數(shù)暴漲,達(dá)到數(shù)據(jù)庫最大連接數(shù),結(jié)果前臺及后臺均連接不上數(shù)據(jù)庫。強(qiáng)制殺死EM及應(yīng)用相關(guān)進(jìn)程,關(guān)閉數(shù)據(jù)庫后,重啟數(shù)據(jù)庫時報:ORA-00119,ORA-00132錯誤
    2015-12-12
  • oracle錯誤代碼大全(超詳細(xì))

    oracle錯誤代碼大全(超詳細(xì))

    本篇文章是對oracle錯誤代碼進(jìn)行了詳細(xì)的總結(jié)與分析,需要的朋友參考下
    2013-05-05
  • Oracle使用backup as copy方式遷移數(shù)據(jù)文件的流程步驟

    Oracle使用backup as copy方式遷移數(shù)據(jù)文件的流程步驟

    Oracle數(shù)據(jù)庫的Backup As Copy是一種備份技術(shù),它創(chuàng)建一個物理一致的副本(copy),即數(shù)據(jù)文件、控制文件、在線redo日志文件以及歸檔日志等的完整拷貝,本文介紹了Oracle使用backup as copy方式遷移數(shù)據(jù)文件的流程步驟,需要的朋友可以參考下
    2024-07-07
  • Oracle 11GR2的遞歸WITH子查詢方法

    Oracle 11GR2的遞歸WITH子查詢方法

    這篇文章主要介紹了Oracle 11GR2的遞歸WITH子查詢方法,非常不錯,具有參考借鑒價值,朋友可以參考下
    2017-02-02
  • Linux下Oracle刪除用戶和表空間的方法

    Linux下Oracle刪除用戶和表空間的方法

    這篇文章主要介紹了Linux下Oracle刪除用戶和表空間的方法,涉及Oracle數(shù)據(jù)庫用戶和表操作的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-12-12
  • Oracle存儲過程創(chuàng)建方式

    Oracle存儲過程創(chuàng)建方式

    本文介紹了Oracle存儲過程的創(chuàng)建,包括package和package body的定義,以及輸入/輸出參數(shù)的類型,通過示例代碼,詳細(xì)說明了如何創(chuàng)建和使用存儲過程,并總結(jié)了個人經(jīng)驗
    2025-02-02

最新評論

明星| 彝良县| 读书| 南澳县| 汾阳市| 临高县| 蕲春县| 邓州市| 安国市| 郑州市| 邯郸市| 鄢陵县| 禄丰县| 疏勒县| 板桥市| 通榆县| 牡丹江市| 闸北区| 长沙市| 马鞍山市| 万宁市| 德庆县| 唐海县| 邮箱| 察雅县| 灵川县| 庐江县| 出国| 鹤岗市| 扶沟县| 牟定县| 盐山县| 德保县| 丰原市| 化州市| 额尔古纳市| 遵义市| 武威市| 衡东县| 汤原县| 临泽县|