Oracle利用 DBMS_PROFILER 包来分析PL/SQL瓶颈

Oracle利用 DBMS_PROFILER 包来分析PL/SQL瓶颈

在 Oracle 10g 版本之前,默认情况下不会安装 DBMS_PROFILER 包,此次演示版本为11.2.0.4.0,默认已经安装。

安装 DBMS_PROFILER 包方式如下:

sqlplus / as sysdba
desc dbms_profiler    --不存在则通过下面的方式创建
@?/rdbms/admin/profload.sql

另外,DBMS_PROFILER 包收集的分析信息存储在多个表中,而这些表默认情况下不会创建,需要在使用 DBMS_PROFIER 包之前在所有数据库版本中显式创建。

方法是运行位于 $ORACLE_HOME/rdbms/admin 文件夹中的脚本“proftab.sql”。这些表可以在普通用户或 SYS 用户中创建,如果在 SYS 中创建,则需要向想要使用 DBMS_PROFILER 包的用户授予适当的权限。

运行“proftab.sql”创建以下对象:

  1. PLSQL_PROFILER_RUNS  - PL/SQL 探查器的运行特定信息。
  2. PLSQL_PROFILER_UNITS - 有关运行中每个库单元的信息。
  3. PLSQL_PROFILER_DATA  - 所有分析器运行的累积数据。
  4. 序列 PLSQL_PROFILER_RUNNUMBER

这里使用 SYS 用户创建并授权:

sqlplus / as sysdba
@?/rdbms/admin/proftab.sql

GRANT SELECT ON plsql_profiler_runnumber TO PUBLIC;
GRANT SELECT,INSERT,UPDATE,DELETE ON sys.plsql_profiler_data  TO PUBLIC;
GRANT SELECT,INSERT,UPDATE,DELETE ON sys.plsql_profiler_units TO PUBLIC;
GRANT SELECT,INSERT,UPDATE,DELETE ON sys.plsql_profiler_runs  TO PUBLIC;

CREATE PUBLIC SYNONYM sys.plsql_profiler_runnumber FOR plsql_profiler_runnumber;
CREATE PUBLIC SYNONYM sys.plsql_profiler_runs      FOR plsql_profiler_runs;
CREATE PUBLIC SYNONYM sys.plsql_profiler_units     FOR plsql_profiler_units;
CREATE PUBLIC SYNONYM sys.plsql_profiler_data      FOR plsql_profiler_data;

https://www.cnblogs.com/PiscesCanon/p/17684336.html

这样所有的普通用户都有权限操作以上涉及的4个对象。

接下来使用普通用户ZKM进行测试,创建测试表和存储过程如下:

CREATE TABLE zkm (id int);

CREATE OR REPLACE procedure proc_insert_zkm
as
begin
   for x in 1..10000
   loop
       insert 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值