【调优篇基本原理】系统统计信息

10g使用以cpu开销为主,兼顾io开销的开销模型,oracle优化器很依赖系统的cpuio性能,故收集系统统计信息是非常重要的。

看一个查询:

 

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_INFOstatuscompleted,代表成功收集了系统统计信息,而SYSSTATS_MAIN下面的CPUSPEEDNWIOSEEKTIMIOTFRSPEED,表示的是noworkload statistics,非工作量系统统计信息,随后的SREADTIMMREADTIMCPUSPEEDMBRCMAXTHRSLAVETHR则为工作量统计,示意的库并没有工作量统计信息

 

可以使用下列语句来完成收集工作量统计信息的工作:

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/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值