Search This Blog

Thursday, June 21, 2012

Using DBMS_PROFILER Oracle 11g


Using DBMS_PROFILER

exec DBMS_PROFILER.start_profiler;

ERROR at line 1:
ORA-06528: Error executing PL/SQL profiler
ORA-06512: at "SYS.DBMS_PROFILER", line 123
ORA-06512: at "SYS.DBMS_PROFILER", line 132
ORA-06512: at line 1



@?\rdbms\admin\proftab.sql

create or replace function tablecounter
return number
as
   c pls_integer;
begin
  select count(*) into c from lineitem;
  return c;
end tablecounter;

exec DBMS_PROFILER.start_profiler('tablecounter');
variable a number
exec :a:= tablecounter;
PL/SQL procedure successfully completed.
exec DBMS_PROFILER.stop_profiler;
BREAK ON  runid ON run_owner ON  run_comment ON run_secs
SELECT a.runid, a.run_owner, a.run_comment,
       a.run_total_time / 1000000000 run_secs, c.total_occur,
       c.total_time / 1000000000 line_total_secs, c.line#, u.text
  FROM plsql_profiler_runs a,
       plsql_profiler_units b,
       plsql_profiler_data c,
       user_source u
 WHERE a.runid = b.runid
   AND a.runid = c.runid
   AND b.unit_name = u.NAME
   AND c.line# = u.line
/

RUNID
RUN_OWNER
RUN_COMMENT
RUN_SECS
TOTAL_OCCUR
LINE_TOTAL_SECS
LINE#
TEXT
1
TPCH2
tablecounter
99.864557
2
0.000073
1
function tablecounter
1
TPCH2
tablecounter
99.864557
0
0.000007
1
function tablecounter
1
TPCH2
tablecounter
99.864557
2
0.000059
1
function tablecounter
1
TPCH2
tablecounter
99.864557
1
0.000002
1
function tablecounter
1
TPCH2
tablecounter
99.864557
1
0.309489
6
select count(*) into c from lineitem;
1
TPCH2
tablecounter
99.864557
1
0.000001
7
return c;
1
TPCH2
tablecounter
99.864557
1
0.000006
8
end tablecounter;