Oracle系统统计信息重要性(包含空闲+负载时的CPU IO等统计信息)

1、存在系统表

 select * from sys.aux_stats$;

2、统计信息项

--cpuspeedNW 表示非负载情况下的cpu速度,在系统启动时自动搜集

--ioseektim IO查找时间,以毫秒表示;缺省为10ms,非负载模式或可以手动设置。

--iotfrspeed IO传输速度,

                   表示Oracle数据库单次读数据的传输速率,单位为bytes/ms,在系统启动时自动收集;默认为4096 bytes/ms

--cpuspeed 表示负载情况下的cpu速度,以平均每秒可提供的cpu周期表示

--maxthr   最大IO吞吐量,单位为bytes/s

--slavethr 从属IO吞吐量,表示并行进程时,从属进程的IO吞吐量,单位为bytes/s

--sreadtim 单块读时间(如索引读取),表示随机读一个Oracle数据块的时间,以ms计算

--mreadtim 多块读时间(主要是指全表扫描),表示连续读取多个Oracle数据库的平均时间,以ms计算 

--mbrc 多块读计数,表示一次多块读的读取的Oracle数据块数

3、收集和删除统计信息

    dbms_stats.gather_system_stats  和 dbms_stats.delete_system_stats

    exec DBMS_STATS.GATHER_SYSTEM_STATS(GATHERING_MODE => 'start');

     exec DBMS_STATS.GATHER_SYSTEM_STATS(GATHERING_MODE => 'stop');

        或者

exec dbms_stats.gather_system_stats(gathering_mode => 'INTERVAL',interval => 10);

4、大话+实验

   们知道在CBO环境中,Oracle依赖于对象的统计估算成本,以选择正确的SQL执行计划。从Oracle9i开始CBO计算成本(cost)的算法有了变化。Oracle9i以前更多考虑IO(多块读与单块读)成本;9i以后,强化了cpu速度对成本估算的影响。

Oracle提供了dbms_stats.gather_system_stats来收集系统统计信息。系统统计信息让优化器考虑服务器的IO与CPU性能及其利用率,作为计算成本的依据;为每一个可选的执行计划估算IO与CPU成本。因而对于CBO来说,获得准确的系统统计信息对于正确估计成本是非常重要的。

 

不同压力与不同类型的应用,甚至同一系统的不同时间,cpu与io的能力都是不一样的。比如ZLHIS在8点到11点的压力,明显于大于下午的压力;这时候包括多块读时间、单块读时间的效率都会有差异。理想的情况是,收集不同系统负载下的系统统计信息,存放到特定的统计信息表中,然后在负载发生变化的时候导入到Oracle中,但在类似ZLHIS这种要求高可用的系统,频繁的变更系统统计信息不太现实。大多数情况下,只需要采集系统高峰时段或典型时段的系统统计信息即可。

收集负载情况下的统计信息有两种方式,一种是手工指定收集时段的开始与结束:

--启动收集

exec dbms_stats.gather_system_stats(gathering_mode => 'START');

.............

--等待系统运行一段时间,等待时间长短根据情况做调整

.............

--停止收集

exec dbms_stats.gather_system_stats(gathering_mode => 'STOP');

另一种方式就是使用间隔模式,指定一个间隔时段,Oracle自动开始与结束信息收集:

--以未来10分钟的系统负载,收集系统统计信息。

exec dbms_stats.gather_system_stats(gathering_mode => 'INTERVAL',interval => 10);

 

需要说明的是收集系统统计信息,并不影响已经缓存的sq

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值