General Information 
System Statistics Sampled 
CPUSPEED 
Workload CPU
speed in millions of cycles/second 
CPUSPEEDNW 
Noworkload CPU speed in millions of cycles/second 
IOSEEKTIM 
Seek time + latency time + operating system overhead time in milliseconds 
IOTFRSPEED 
Rate of a single read request in bytes/millisecond 
MAXTHR 
Maximum throughput that the I/O subsystem can deliver in bytes/second 
MBRC 
Average multiblock read count sequentially in blocks 
MREADTIM 
Average time for a multiblock read request in milliseconds 
SLAVETHR 
Average parallel slave I/O throughput in bytes/second 
SREADTIM 
Average time for a singleblock read request in milliseconds 

Dynamic Sampling Levels from the Optimizer Dynamic Sampling initialization parameter 
optimizer_dynamic_sampling=2 
The sampling levels are as follows if the dynamic sampling level used
is from a cursor hint or from the OPTIMIZER_DYNAMIC_SAMPLING initialization parameter:

Level 0: Do not use dynamic sampling.

Level 1: Sample all tables that have not been analyzed if the following criteria are met: (1) there is at least 1
unanalyzed table in the query; (2) this unanalyzed table is joined to another table or appears in a subquery or
nonmergeable view; (3) this unanalyzed table has no indexes; (4) this unanalyzed table has more blocks than
the number of blocks that would be used for dynamic sampling of this table. The number of blocks sampled is the
default number of dynamic sampling blocks (32).

Level 2: Apply dynamic sampling to all unanalyzed tables. The number of blocks sampled is two times the default
number of dynamic sampling blocks.

Level 3: Apply dynamic sampling to all tables that meet Level 2 criteria, plus all tables for which standard
selectivity estimation used a guess for some predicate that is a potential dynamic sampling predicate. The number
of blocks sampled is the default number of dynamic sampling blocks. For unanalyzed tables, the number of blocks
sampled is two times the default number of dynamic sampling blocks.

Level 4: Apply dynamic sampling to all tables that meet Level 3 criteria, plus all tables that have singletable
predicates that reference 2 or more columns. The number of blocks sampled is the default number of dynamic sampling
blocks. For unanalyzed tables, the number of blocks sampled is two times the default number of dynamic sampling blocks.

Levels 5, 6, 7, 8, and 9: Apply dynamic sampling to all tables that meet the previous level criteria using 2, 4, 8, 32,
or 128 times the default number of dynamic sampling blocks respectively.

Level 10: Apply dynamic sampling to all tables that meet the Level 9 criteria using all blocks in the table.

Dynamic Sampling Levels if set by the Dynamic Sampling optimizer hint 
/*+ DYNAMIC_SAMPLING (@<query_block><tablespace><level>) */ 
 Level 0: Do not use dynamic sampling.
 Level 1: The number of blocks sampled is the default number of dynamic sampling blocks
(32).
 Levels 2, 3, 4, 5, 6, 7, 8, and 9: The number of blocks sampled is 2, 4, 8, 16, 32, 64,
128, or 256 times the default number of dynamic sampling blocks respectively.
 Level 10: Read all blocks in the table.

If there is no singletable predicate (a WHERE clause that evaluates only one
table), then the optimizer trusts the existing statistics and ignores this hint. For example, the following query will not
result in any dynamic sampling if employees is analyzed:
SELECT /*+ dynamic_sampling(e 1) */ COUNT(*)
FROM employees e;
If there is a singletable predicate, then the optimizer uses the existing cardinality
statistic and estimates the selectivity of the predicate using the existing statistics.
To apply dynamic sampling to a specific table, use the following form of the hint:
SELECT /*+ dynamic_sampling(employees 1) */ *
FROM employees
WHERE ..,

Notes
These comments are untested but should be considered 
A null MBRC may indicate that
db_file_multiblock_read_count is set to 0.
The default value for iotfrspeed is 10. If you get that rerun.
When mreadtim is small than sreadtim workload stats are ignored by the
query optimizer and the noworkload stats are used.
mreadtim is computed based on x$kcfio, mbrc is computed based on v$sysstat
(x$ksusgsta)

Determine current dynamic sampling setting 
select name, value from gv$parameter
where name like '%samp%';

Collect System Statistics Demo with no load on the system 
conn / as sysdba
exec dbms_stats.gather_system_stats();
SELECT pname, pval1
FROM aux_stats$
WHERE sname = 'SYSSTATS_MAIN';

Collect System Statistics Demo with a load on the system 
conn / as sysdba
SELECT pname, pval1
FROM aux_stats$
WHERE sname = 'SYSSTATS_MAIN';
exec dbms_stats.delete_system_stats;
GRANT gather_system_statistics TO uwclass;
conn uwclass/uwclass
 gather workload over the next 15 minutes
exec dbms_stats.gather_system_stats('INTERVAL', 15);
 download airplanes.sql
@airplanes.sql
 remove index
drop index ix_program_id;
SELECT *
FROM airplanes;
conn sh/sh
 run demos on Rollups/Cube page
exec dbms_stats.gather_system_stats('STOP');
conn / as sysdba
SELECT pname, pval1
FROM aux_stats$
WHERE sname = 'SYSSTATS_MAIN';

Invalidate Existing Execution Plans 
SQL> ALTER SYSTEM FLUSH SHARED_POOL;

Estimating the time to perform a Full Table Scan (or index fast full scan) to completion 
exec dbms_stats.gather_table_stats('UWCLASS', 'AIRPLANES');
SELECT blocks
FROM user_segments
WHERE segment_name = 'AIRPLANES';
 returns 1088
/*
SELECT mreadtim * HWM / MBRC
FROM dual;
*/
SELECT 5.121 * 1088 / 8
FROM dual;
 696.456 ms.


Related
Startup Parameters 
When workload statistics are not collected
these two parameters control the execution and optimizer MBRC. 
SELECT x.ksppinm
NAME, y.ksppstvl VALUE, ksppdesc DESCRIPTION
FROM x$ksppi x, x$ksppcv y
WHERE x.inst_id = SYS_CONTEXT('USERENV', 'Instance')
AND y.inst_id = SYS_CONTEXT('USERENV', 'Instance')
AND x.indx = y.indx
AND x.ksppinm LIKE '_db_file%'
ORDER BY 1;
_db_file_exec_read_count
multiblock read count for regular clients
_db_file_optimizer_read_count
multiblock read count for regular clients
