搜尋此網誌

星期二, 3月 06, 2012

一隻抓取時間的procedure造成cpu拉高

今天有機會看一個系統的狀況,解決的過程如下:

1、環境:
Oracle Rac 10.2.0.3 on Sun Solaris

2、問題:

@程式碼:

CREATE OR REPLACE PROCEDURE proc_system_time(Sys_date_timeOUT char) IS
BEGIN
Sys_date_time := TO_CHAR(SYSDATE,'yyyymmddhh24miss');
END;
/


 @症狀:
    cpu 升高


3、分析:
經由awr report檢查系統使用率,不論是memory的使用率,hard parse & hit ration都還不錯。


但在sql ordered by execution 中發現 執行的次數在2小時間,有1534萬次,實在高得離譜。


懷疑有無窮迴圈產生。





SQL ordered by Executions

  • Total Executions: 16,500,018
  • Captured SQL account for 95.5% of Total
ExecutionsRows ProcessedRows per ExecCPU per Exec (s)Elap per Exec (s)SQL IdSQL ModuleSQL Text
15,344,16815,337,9331.000.000.008u74nmyn35a6fw3wp.exeBEGIN proc_system_time...
93,70793,7071.000.000.00ftj9uawt4wwzbselect condition from cdef$ wh...
75,92775,9271.000.000.00ckxd2nv9y5vyvACC.exeSelect count ( rowid ) From pa...
70,81270,4971.000.000.00dq5p20xu978dnACC.exeselect inp_dec_rec_id from cha...
20,048344,08017.160.000.00db78fxqxwxt7rselect /*+ rule */ bucket, en...
14,84100.000.000.00b2gnxm5z6r51nlock table sys.col_usage$ in e...
12,84510,9050.850.000.0096g93hntrzjtrselect /*+ rule */ bucket_cnt,...
7,2401,0000.140.000.000h6b2sajwb74nselect privilege#, level from ...
7,1597,2421.010.000.000k8522rmdzg4kselect privilege# from sysauth...
6,4286,4131.000.000.003c1kubcdjnppqupdate sys.col_usage$ set eq...



4、解決:請使用者回去找開發人員,是否有異動程式。

沒有留言: