>  기사  >  데이터 베이스  >  oracle系统统计信息

oracle系统统计信息

WBOY
WBOY원래의
2016-06-07 15:15:121143검색

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 系统统计信息主要描述了与系统硬件相关的某些特性,例如cpu和io系统的性能和利用率等。这些信息对于查询优化器来说是非常重要的,在选择执行计划的过程中,oracle优化器会利用系统统计信息来评估执

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入

  系统统计信息主要描述了与系统硬件相关的某些特性,例如cpu和io系统的性能和利用率等。这些信息对于查询优化器来说是非常重要的,在选择执行计划的过程中,oracle优化器会利用系统统计信息来评估执行计划的成本,因此,准确无误的系统统计信息可以帮助优化器做出正确的选择。

  我们可以通过DBMS_STATS.GATHER_SYSTEM_STATS过程来收集系统统计信息,收集的方式有两种:负载统计(WORKLOAD STATISTICS)在具有真实系统负载的数据库系统上,收集某一时间段内的系统信息;非负载统计(NOWORKLOAD STATISTICS)oracle数据库基于某种方式(如持续读磁盘)模拟系统负载来获取系统统计信息。

  通各方资料和oracle官方文档中可以看出,我们最好采用系统负载的方式来收集系统统计信息,收集的时间间隔至少要30分钟,条件允许的情况下,最好多次收集,择优使用。处理使用DBMS_STATS.GATHER_SYSTEM_STATS来收集系统统计信息,我们也可以手工设定某些信息选项,这一点在后面会有示例。

  oracle的系统统计信息最终是存储在aux_stats$数据基表中的,首先来看一下该表的结构:

  SQL> desc aux_stats$

  名称 是否为空? 类型

  ----------------------------- -------- --------------------

  SNAME NOT NULL VARCHAR2(30)

  PNAME NOT NULL VARCHAR2(30)

  PVAL1 NUMBER

  PVAL2 VARCHAR2(255)

  aux_stats$表中存储的数据量是非常有限的,如

  SQL> select * from aux_stats$;

  SNAME PNAME PVAL1 PVAL2

  -------------------- -------------------- ---------- ------------------------------

  SYSSTATS_INFO STATUS COMPLETED

  SYSSTATS_INFO DSTART 09-17-2011 10:21

  SYSSTATS_INFO DSTOP 09-17-2011 10:21

  SYSSTATS_INFO FLAGS 1

  SYSSTATS_MAIN CPUSPEEDNW 1751.75879

  SYSSTATS_MAIN IOSEEKTIM 10

  SYSSTATS_MAIN IOTFRSPEED 4096

  SYSSTATS_MAIN SREADTIM

  SYSSTATS_MAIN MREADTIM

  SYSSTATS_MAIN CPUSPEED

  SYSSTATS_MAIN MBRC

  SNAME PNAME PVAL1 PVAL2

  -------------------- -------------------- ---------- ------------------------------

  SYSSTATS_MAIN MAXTHR

  SYSSTATS_MAIN SLAVETHR

  已选择13行。

  sname字段的取值有:SYSSTATS_INFO,SYSSTATS_MAIN,SYSSTATS_TEMP

  SYSSTATS_INFO:系统统计信息的状态

  SYSSTATS_MAIN:系统统计信息的内容

  SYSSTATS_TEMP:在收集系统统计信息期间,用于临时存放中间数据

  对于pname字段的含义,oracle官方文档给出了详细的解释:

  Parameter NameDescriptionInitializationOptions for Gathering or Setting StatisticsUnit

  cpuspeedNWRepresents noworkload CPU speed. CPU speed is the average number of CPU cycles in each second. CPU速率At system startupSet gathering_mode = NOWORKLOAD or set statistics manually.Millions/sec.

  ioseektimI/O seek time equals seek time + latency time + operating system overhead time. 寻道时间At system startup

  10 (default)Set gathering_mode = NOWORKLOAD or set statistics manually.ms

  iotfrspeedI/O transfer speed is the rate at which an Oracle database can read data in the single read request. 数据传输速率At system startup

  4096 (default)Set gathering_mode = NOWORKLOAD or set statistics manually.Bytes/ms

  cpuspeedRepresents workload CPU speed. CPU speed is the average number of CPU cycles in each second. CPU速率NoneSet gathering_mode = NOWORKLOAD, INTERVAL, orSTART|STOP, or set statistics manually.Millions/sec.

[1] [2] 

oracle系统统计信息

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.