是否确定要从中检索数据的查询没有问题?
plsql_profiler_units
?
我试过这个:
Create Procedure sub_procedure As
Begin
dbms_output.put_line('test');
End;
Create Package test_package As
Procedure test;
End;
Create Package Body test_package As
Procedure test As Begin
For i In 1 .. 10 Loop
If(i<=5) Then
sub_procedure;
End If;
End Loop;
End;
End;
Begin
DBMS_PROFILER.start_profiler(SYSDATE);
test_package.test;
DBMS_PROFILER.stop_profiler;
End;
这个简单的查询
Select uni.unit_name, dat.line#, dat.total_occur
From plsql_profiler_data dat
Join plsql_profiler_units uni On ( uni.runid = dat.runid
And uni.unit_number = dat.unit_number )
给出了预期的结果,同时显示了程序包和过程:
<anonymous> 1 0
<anonymous> 2 0
<anonymous> 3 2
<anonymous> 4 1
<anonymous> 5 0
TEST_PACKAGE 2 0
TEST_PACKAGE 3 11
TEST_PACKAGE 4 5
TEST_PACKAGE 5 6
TEST_PACKAGE 8 1
SUB_PROCEDURE 1 0
SUB_PROCEDURE 3 5
SUB_PROCEDURE 4 5