配置环境搭建
1, 创建测试账号travis/travis@dbdev 并授予DBA权限;
2, 通过sys账号,以sysdba的身份登录Oracle11g
3, 运行一下语句:
grant select on v_$mystat to travis;
grant select on v_$statname to travis;
grant select on v_$latch to travis;
grant select on v_$timer to travis;
4, 通过工具sqlplus或pl/sql developer 用上一步创建的账号gaojing登陆Oracle11g
5, 运行书本(《Oracle Database 9i/10g/11g编程艺术 深入数据库体系结构》,后面的书本同指该书)代码:ch00/ big_table.sql
6, 修改ch00/ runstats.sql的代码如下:将 grant select any table to ops$tkyte;改为grant select any table to gaojing;
7, 运行修改后的runstats.sql代码
8, 运行ch00/ show_space.sql代码,至此配置环境告一段路。
配置环境试用:
在pl/sql dev中使用请参考附录“RunStats工具在PLSQL Dev中使用Demo.sql”文件
在sql plus中使用参考书本:《Oracle Database 9i/10g/11g编程艺术 深入数据库体系结构》P10~P11
注意事项:
如果在sqlplus中没有输出统计结果,可能是输出没有打开,执行下面的语句打开输出:
set serveroutput on
附录:RunStats工具在PLSQL Dev中使用Demo.sql
/*
2012 07 20 oracle体系架构一书提供的工具runstats的使用演示。
*/
/*第一步:创建T1,T2表
*/
create table t1
as select * from big_table
where 1=0;
commit;
create table t2
as select * from big_table
where 1=0;
commit;
/*
第二步:调用存储过程runstats_pkg.rs_start ,用于保存统计结果的表run_stats,并填入当前的latch、当前定时器的相关信息
*/
begin
runstats_pkg.rs_start;
end;
/*
第三步:用第一种方法插入数据
*/
insert into t1 select * from big_table ;
commit;
/*
第四步:执行runstats_pkg.rs_middle,用于把第一次测试运行的耗用时间记录在G_Run1中,然后插入当前的一组统计结果和latch信息。
*/
begin
runstats_pkg.rs_middle;
end;
/*
第五步:执行第2中插入数据的方法
*/
begin
for x in (select * from big_table)
loop insert into t2 values x;
end loop;
commit;
end;
/*
第六步:输出对比2种插入数据方法的统计结果。
*/
begin
runstats_pkg.rs_stop(0);
end ;
commit;