oracle信息统计脚本runstats的创建与验证

 runstats是《Oracle Database 9i/10g/11g编程艺术:深入数据库体系结构》作者编写的一个工具,能对做同一件事情的两个不同方法进行比较,得出孰优孰劣的结果。我们只需要提供两个不同的方法,余下的事情都由runstats负责。runstats只负责测量3个要素:

  1. 墙上时钟或耗时时间:知道墙上时钟或耗时时间很有用,不过这不是最重要的信息。
  2. 系统统计结果:会并排地i显示每个方法做某件事(如执行一个解析调用)的次数,并展示出两者之差
  3. 闩定(latching):这是这个报告的关键输出。

  要使用runstats,需要能访问几个V$视图,并创建一个表来存储统计结果,还要创建runstats包。为此,需要访问4个V$表(就是那些神奇的动态性能表):V$STATNAME、V$MYSTAT和V$LATCH和V$TIMER。这四个表其实是别名,真正对象的名称应为V_$STATNAME、V_$MYSTAT、  V_$LATCH、  V_$TIMER,并且都是在sys账户下。如果其他账户要访问这四张表, 需要进行授权。我们需要再scott下进行操作,因此需要将这四张表的select权限授予给scott账户。下面进行具体操作。

1在sys账户下

1.1将V_$表的查询权限授权给scott   

oracle信息统计脚本runstats的创建与验证View Code

2在scott账户下

2.1查询V_$表

oracle信息统计脚本runstats的创建与验证View Code

2.2创建视图

oracle信息统计脚本runstats的创建与验证View Code

2.3创建信息收集表 

oracle信息统计脚本runstats的创建与验证View Code

2.4创建runstats包

oracle信息统计脚本runstats的创建与验证View Code

2.5创建包体

oracle信息统计脚本runstats的创建与验证View Code

3.使用runstats

3.1创建表T

oracle信息统计脚本runstats的创建与验证View Code

3.2创建存储过程proc1,使用了一条带绑定变量的SQL语句

oracle信息统计脚本runstats的创建与验证View Code

3.3创建存储过程proc2,分别为要插入的每一行构造一条独立的SQL语句

oracle信息统计脚本runstats的创建与验证View Code

3.4使dbms_output.put_line 生效

要使用dbms_output.put_line ,则必须在sqlplus中显式声明:

 set serverout on

比如:

SQL> set serverout on
SQL> exec dbms_output.put_line('asda');
asda--输出结果

PL/SQL procedure successfully completed

3.5执行runstats中的方法以及两个存储过程

oracle信息统计脚本runstats的创建与验证View Code

输出结果为:

oracle信息统计脚本runstats的创建与验证View Code

 

 本文转自xwdreamer博客园博客,原文链接:http://www.cnblogs.com/xwdreamer/archive/2012/06/14/2548952.html,如需转载请自行联系原作者

 

上一篇:Linux Shell之七 函数应用


下一篇:Spring AOP 源码解析