Oracle 11g資料庫緩慢診斷案例

feelpurple發表於2015-12-17
運維同事反應資料庫執行緩慢

登入資料庫的作業系統,透過 top 命令檢視系統負載,發現有兩個程式使用的 CPU 均很高,且這兩個程式都是 oracle 的



登入資料庫,檢視這兩個程式對應的會話資訊,發現其中一個會話為 SQL 查詢,已經執行了40多分鐘,找到其中的 SQL_ID

select s.SID,s.SERIAL#,MACHINE,TERMINAL, OSUSER, SCHEMANAME, PROGRAM,MODULE,ACTION,CLIENT_INFO,
 decode(s.COMMAND,3,'SELECT',s.COMMAND) COMMAND,STATUS,SQL_ID,SQL_ADDRESS,SQL_EXEC_START,
DECODE(STATUS,'ACTIVE',LAST_CALL_ET,NULL) "SQL執行時間",EVENT,STATE,SECONDS_IN_WAIT,SERVICE_NAME
 from V$SESSION s where s.USERNAME is not null AND WAIT_CLASS <> 'Idle' and spid = &1;

SQL_ID
cf5qahutb4wqb

檢視 SQL 的內容

SELECT SQL_ID,SQL_TEXT FROM V$SQLAREA WHERE SQL_ID = 'cf5qahutb4wqb';

BEGIN P_GOLD_DATEUSER(:1 , :2 , :3 , :4 , :5 , :6 , :7 ); END;

分析找到的 PL SQL 程式碼,找到裡面的一條 BAD SQL

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26506993/viewspace-1874135/,如需轉載,請註明出處,否則將追究法律責任。

相關文章