Oracle使用profiler来测试PL/SQL的性能
在Oracle中我们可以很容易的获取sql语句的执行计划,根据执行计划我们就可以基本上判断出该SQL语句的执行效率,那么我们怎么在Oracle中测试PL/SQL代码的执行效率呢?例如我们有一个存储过程testplsql,我想看一下这个存储过程在那一步比较耗时?这个时候我们就可以使用profiler来进行获取这个存储过程的执行效率,废话不多说,我们直接来看看profiler的使用。
1.安装profiler
先在sys用户执行$ORACLE_HOME/rdbms/admin/profload.sql这个脚本,再在需要测试的PL/SQL代码的用户下执行$ORACLE_HOME/rdbms/admin/proftab.sql
例如,在demo用户下有一个存储过程testplsql,我们现在想测试testplsql的运行效率,按照上面的步骤,先在sys用户下执行$ORACLE_HOME/rdbms/admin/profload.sql,再在demo用户下执行$ORACLE_HOME/rdbms/admin/proftab.sql
SQL> show user;
USER is "SYS"
USER is "SYS"
SQL> @?/rdbms/admin/proftab.sql
drop table plsql_profiler_data cascade constraints
*
ERROR at line 1:
ORA-00942: table or view does not exist
drop table plsql_profiler_units cascade constraints
*
ERROR at
drop table plsql_profiler_data cascade constraints
*
ERROR at line 1:
ORA-00942: table or view does not exist
drop table plsql_profiler_units cascade constraints
*
ERROR at