1,工具的主要用途
当SQL processing excute time 有很大差别,且涉及到大量PL/SQL 代码时,就可以使用PL/SQL Profiler 工具,其可以指明行级PL/SQL 的时间。
2,安装工具
1)检查DBMS_PROFILER 包是否安装
#sqlplus dbmgr/<pwd> --注意用户
SQL> DESC DBMS_PROFILER;
2)如果没有安装包,则安装DBMS_PROFILER包
使用SYS 用来执行如下命令来安装该包。
#sqlplus SYS/<pwd> --注意用户
SQL> START ?/rdbms/admin/profload.sql;
3)创建存放统计数据的表
PLSQL_PROFILER_RUNS,PLSQL_PROFILER_UNITS and PLSQL_PROFILER_DATA。 该脚本在PROF 包里有,$ORACLE_HOME/rdbms/admin目录下也有。
#sqlplus dbmgr/<pwd> --注意用户
SQL> start ?/rdbms/admin/proftab.sql
drop table plsql_profiler_data cascadeconstraints
*
ERROR at line 1:
ORA-00942: table or view does not exist
drop table plsql_profiler_units cascadeconstraints
*
ERROR at line 1:
ORA-00942: table or view does not exist
drop table plsql_profiler_runs cascadeconstraints
*
ERROR at line 1:
ORA-00942: table or view does not exist
drop sequence plsql_profiler_runnumber
*
ERROR at line 1:
ORA-02289: sequence does not exist
Table created.
Comment created.
Table created.
Comment created.
Table created.
Comment created.
Sequence created.
3,执行对应的过程
declare
-- Local variables here
i integer;
begin
-- Test statements here
DBMS_PROFILER.START_PROFILER('Xionglang lugz0 PL/SQL Profiler');--开始的标记
Pos1_package.update_h11;--执行的过程
DBMS_PROFILER.STOP_PROFILER;--结束
end;
/
4,用profiler.sql格式化输出
sqlplus dbmgr/<pwd>
SQL> @?/rdbms/admin/profiler.sql
RUNID RUN_DATE RUN_COMMENT
---------- -----------------------------------------------------
1 2013/7/30 11:12:37 Xionglang lugz0 PL/SQL Profiler
--这里这里的RUN_COMMENT内容,其在DBMS_PROFILER.START_PROFILER 中指定,主要用来辨别我们的RUNID.
Usage:
sqlplus apps/<pwd>
SQL> START profiler.sql <runid>
Enter value for 1: 1
SQL>
5,然后在$ORACLE_HOME/rdbms/admin/profiler_1.html