想看到过程或者函数执行每一步的过程;想看到每一步所占的时间吗?借助profiler吧;它可以满足你来分析过程/函数执行比较久;可以直接快速找到病因;从而可以优化那一步需要优化下。
一般情况下DBMS_PROFILER的Package和Table都已经安装,如果你的数据库里没有DBMS_PROFILER相关Package和Table,那么需要手动的运行以下两个prof*.sql
1.建package过程 用sys用户操作
SQL> start $ORACLE_HOME/rdbms/admin/profload.sql;
2.建表操作;可以用普通用户操作
SQL> start $ORACLE_HOME/rdbms/admin/proftab.sql
Tables:
plsql_profiler_runs - information on profiler runs
plsql_profiler_units - information on each lu profiled
plsql_profiler_data - profiler data for each lu profiled
--赋权限给所有用户;
GRANT SELECT ON plsql_profiler_runnumber TO PUBLIC;
GRANT SELECT, INSERT, UPDATE, DELETE ON plsql_profiler_runs TO PUBLIC;
GRANT SELECT, INSERT, UPDATE, DELETE ON plsql_profiler_units TO PUBLIC;
GRANT SELECT, INSERT, UPDATE, DELETE ON plsql_profiler_data TO PUBLIC;
操作:
借用plsql development 工具来使用。
1.点击下图标红色部分;create profiler report
2. 点击profiler可以直接看到过程每一步所执行过程。