_MONITORING_INFO 可以立刻反映内存中超过监控的信息。在 OPTIONS 参数设置为
GATHER STALE or GATHER AUTO 时,DBMS_STATS 收集过期统计的对象的统计。
6 用户定义统计
在创建了基于索引的统计后,应该在表上收集新的列统计,这可以通过调用过程设置
METHOD_OPT 的 FOR ALL HIDDEN COLUMNS。
7 何时收集统计
对于增量更改的表,可能每个月/每周只需要收集一次,而对于加载后表,通常在加载脚本中增
加收集统计的脚本。对于分区表,如果仅仅是一个分区有了较大改动,只需要收集一个分区的
统计,但是收集整个表的分区也是必要的。
系统统计
==========================
系统统计描述系统硬件的特征,包括 I/O 和 CPU。在选择执行计划时,优化器考虑查询所需的
CPU 和 I/O 代价。系统统计允许优化器更加精确的评价 CPU 和 IO 代价,选择更好的查询计划。
使用 DBMS_STATS.GATHER_SYSTEM_STATS 收集系统统计,Oracle 推荐收集系统统计。
收集系统统计需要 DBA 权限。
收集的优化器系统统计包括:
cpuspeedNW:代表无负载 CPU 速度,CPU 速度为每秒钟 CPU 周期数;通过设置
gathering_mode = NOWORKLOAD 或手工设置统计;单位 Millions/sec。
ioseektim:I/O 查找时间=查找时间+延迟时间+OS 负载时间;通过设置 gathering_mode
= NOWORKLOAD 或手工设置统计;单位为 ms。
Iotfrspeed:I/O 传输速度;通过设置 gathering_mode = NOWORKLOAD 或手工设置统计;
单位为 Bytes/ms.
Cpuspeed:代表有负载 CPU 速度,CPU 速度为每秒钟 CPU 周期数;通过设置
gathering_mode =NOWORKLOAD,INTERVAL, START|STOP 或手工设置统计;单位
Millions/sec。
Maxthr:最大 I/O 吞吐量;通过设置 gathering_mode =NOWORKLOAD,INTERVAL,
START|STOP 或手工设置统计;单位 Bytes/sec.
Slavethr:服务 I/O 吞吐量是平均并行服务 I/O 吞吐量;通过设置 gathering_mode =
INTERVAL,START|STOP 或手工设置统计;Bytes/sec.
Sreadtim:随机读取单块的平均时间;通过设置 gathering_mode =INTERVAL,START|
STOP 或手工设置统计;单位为 ms。
Mreadtim:顺序读取多块的平均时间,通过设置通过设置 gathering_mode =
INTERVAL,START|STOP 或手工设置统计;单位为 ms。
Mbrc: 多块读平均每次读取的块数量;通过设置通过设置 gathering_mode =
INTERVAL,START|STOP 或手工设置统计;单位为 blocks。
系统统计的重新收集不会导致当前的 SQL 无效,只是所有的新 SQL 语句使用新的统计。
Oracle 提供两个选项收集统计:负载统计;非负载统计。