10g使用以cpu开销为主,兼顾io开销的开销模型,oracle优化器很依赖系统的cpu和io性能,故收集系统统计信息是非常重要的。
看一个查询:
SQL> select * from sys.aux_stats$;
SNAME PNAME PVAL1 PVAL2
-------------------- ------------- ---------- ------------
SYSSTATS_INFO STATUS COMPLETED
SYSSTATS_INFO DSTART 02-17-2008 02:28
SYSSTATS_INFO DSTOP 02-17-2008 02:28
SYSSTATS_INFO FLAGS 1
SYSSTATS_MAIN CPUSPEEDNW 576.865795
SYSSTATS_MAIN IOSEEKTIM 10
SYSSTATS_MAIN IOTFRSPEED 4096
SYSSTATS_MAIN SREADTIM
SYSSTATS_MAIN MREADTIM
SYSSTATS_MAIN CPUSPEED
SYSSTATS_MAIN MBRC
SYSSTATS_MAIN MAXTHR
SYSSTATS_MAIN SLAVETHR
13 rows selected
可以看到SYSSTATS_INFO的status为completed,代表成功收集了系统统计信息,而SYSSTATS_MAIN下面的CPUSPEEDNW,IOSEEKTIM,IOTFRSPEED,表示的是noworkload statistics,非工作量系统统计信息,随后的SREADTIM,MREADTIM,CPUSPEED,MBRC,MAXTHR,SLAVETHR则为工作量统计,示意的库并没有工作量统计信息
可以使用下列语句来完成收集工作量统计信息的工作:
begin
Dbms_stats.gather_system_stats(gathering_mode => 'start'
);
end;
/
可以看到'SYSSTATS_TEMP下的一些信息,代表目前正在收集统计信息:
SQL> select a.pname,a.pval1,a.pval2
2 from sys.aux_stats$ a where a.sname = 'SYSSTATS_TEMP';
PNAME PVAL1 PVAL2
------------------------------ ---------- --------------------------------------------------------------------------------
CACHE_JOB 1
CPUCYCLES 11538660
CPUTIM 22621138
JOB 0
MBLKRDS 11764
MBLKRDTIM 29600
MBRTOTAL 277943
SBLKRDS 190001
SBLKRDTIM 70980
9 rows selected
使用下列语句来结束收集
begin
Dbms_stats.gather_system_stats(gathering_mode => 'stop'
);
end;
/
SQL> select a.pname,a.pval1 from sys.aux_stats$ a where a.sname = 'SYSSTATS_MAIN' ;
PNAME PVAL1
------------------------------ ----------
CPUSPEED 510
CPUSPEEDNW 576.865795
IOSEEKTIM 10
IOTFRSPEED 4096
MAXTHR
MBRC
MREADTIM
SLAVETHR
SREADTIM 0.6
9 rows selected
具体列出上述涉及到的一些统计信息:
CPUSPEED
负载下的cpu速度,即每秒钟的cpu周期数(单位是百万次millon)
CPUSPEEDNW
无负载cpu速度,通过设置gathering_mode=NOWORKLOAD或者手动设置统计。
IOSEEKTIM
Io的查找时间,通过设置gathering_mode=NOWORKLOAD或者手动设置统计,单位是ms。
IOTFRSPEED
Io的传输速度,通过设置gathering_mode=NOWORKLOAD或者手动设置统计,单位是bytes/ms
MAXTHR
最大的io吞吐量,bytes/sec
MBRC
多块读的平均每次读的块的数量,单位是block
MREADTIM
顺序读多块的平均时间
SLAVETHR
平均并行io吞吐量
SREADTIM
随即读单块的平均时间
Dbms_stats还提供了锁定和解锁统计信息的方法:
Lock_schema_stats或者lock_table_stats用来锁定
Unlock_schema_stats或者unlock_table_stats用来解锁
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16179598/viewspace-669632/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/16179598/viewspace-669632/