DBMS_PROFILER 檢視儲存過程執行時間

Nalternative發表於2011-10-09
create table test (a int);
/
CREATE OR REPLACE PROCEDURE mytest
AS
BEGIN
   --啟動profiler
  sys.DBMS_PROFILER.start_profiler ('xx');
   FOR I IN 1 .. 100
   LOOP
      INSERT INTO test(a) VALUES   (I);
   END LOOP;
   COMMIT;
   --停止profiler
   sys.DBMS_PROFILER.stop_profiler;
END;
/
begin
  sp_test;
end;

select t1.line#,t3.text,t1.total_occur,t1.total_time,min_time, max_time
from plsql_profiler_data t1,plsql_profiler_units t2,user_source t3
where t1.runid = t2.runid
and t2.unit_name='MYTEST'
and t2.unit_name = t3.name
and t1.line#=t3.line
and t1.runid=10
order by t1.line#
 

LINE# TEXT TOTAL_OCCUR TOTAL_TIME MIN_TIME MAX_TIME
1 PROCEDURE sp_test  0 0 0 0
5   sys.DBMS_PROFILER.start_profiler ('xx');  0 0 0 0
6    FOR I IN 1 .. 100  101 11723 97 313
8       INSERT INTO test(a) VALUES   (I);  100 3601016 26234 554188
10    COMMIT;  1 93067 93067 93067
12    sys.DBMS_PROFILER.stop_profiler;  1 3552 3552 3552
13 END; 0 0 0 0

二、也可以使用pl/sql develop中的測試視窗來檢視執行效率。
並且可以匯出資料到html

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

相關文章