Новая опция появилась в сборе системной статистики:
exec dbms_stats.gather_system_stats('EXADATA');
На какие параметры она влияет? Возьмем базу, в которой никогда системная статистика не собиралась, соберем ее и посмотрим, какие параметры изменились:
SQL> select * from aux_stats$;
SNAME PNAME PVAL1 PVAL2
--------------- ----------- ---------- ----------------
SYSSTATS_INFO STATUS COMPLETED
SYSSTATS_INFO DSTART 11-30-2012 18:21
SYSSTATS_INFO DSTOP 11-30-2012 18:21
SYSSTATS_INFO FLAGS 1
SYSSTATS_MAIN CPUSPEEDNW 2588.93427
SYSSTATS_MAIN IOSEEKTIM 10
SYSSTATS_MAIN IOTFRSPEED 4096
SYSSTATS_MAIN SREADTIMSYSSTATS_MAIN MREADTIMSYSSTATS_MAIN CPUSPEED
SYSSTATS_MAIN MBRC
SYSSTATS_MAIN MAXTHR
SYSSTATS_MAIN SLAVETHR
13 rows selected.
SQL> set timing on
SQL> exec dbms_stats.gather_system_stats('EXADATA');
PL/SQL procedure successfully completed.
Elapsed: 00:00:37.97
SQL> select * from aux_stats$;
SNAME PNAME PVAL1 PVAL2
--------------- ----------- ---------- ----------------
SYSSTATS_INFO STATUS COMPLETED
SYSSTATS_INFO DSTART 01-14-2013 15:06
SYSSTATS_INFO DSTOP 01-14-2013 15:06
SYSSTATS_INFO FLAGS 1
SYSSTATS_MAIN CPUSPEEDNW 2586
SYSSTATS_MAIN IOSEEKTIM 3
SYSSTATS_MAIN IOTFRSPEED 164076
SYSSTATS_MAIN SREADTIM
SYSSTATS_MAIN MREADTIM
SYSSTATS_MAIN CPUSPEED
SYSSTATS_MAIN MBRC 128
SYSSTATS_MAIN MAXTHR
SYSSTATS_MAIN SLAVETHR
13 rows selected.
MBRC = 128 * 8K = 1M.
Интересно, команда dbms_stats.gather_system_stats('EXADATA') измеряет ли что-то или записывает одни и те же данные? Для продолжения эксперимента возьмем вторую БД с другим размером блока (32К) и повторим запуск:
SNAME PNAME PVAL1 PVAL2
-------------- ----------- ---------- ----------------
SYSSTATS_INFO STATUS COMPLETED
SYSSTATS_INFO DSTART 12-21-2012 11:34
SYSSTATS_INFO DSTOP 12-27-2012 10:38
SYSSTATS_INFO FLAGS 1
SYSSTATS_MAIN CPUSPEEDNW 2602.46361
SYSSTATS_MAIN IOSEEKTIM 10
SYSSTATS_MAIN IOTFRSPEED 4096
SYSSTATS_MAIN SREADTIM .708
SYSSTATS_MAIN MREADTIM 5.327
SYSSTATS_MAIN CPUSPEED 2591
SYSSTATS_MAIN MBRC 11
SYSSTATS_MAIN MAXTHR
SYSSTATS_MAIN SLAVETHR
SQL> exec dbms_stats.gather_system_stats('EXADATA');
PL/SQL procedure successfully completed.
SQL> select * from aux_stats$;
SNAME PNAME PVAL1 PVAL2
-------------- ----------- ---------- ----------------
SYSSTATS_INFO STATUS COMPLETED
SYSSTATS_INFO DSTART 01-14-2013 15:21
SYSSTATS_INFO DSTOP 01-14-2013 15:21
SYSSTATS_INFO FLAGS 1
SYSSTATS_MAIN CPUSPEEDNW 2580
SYSSTATS_MAIN IOSEEKTIM 3
SYSSTATS_MAIN IOTFRSPEED 235038
SYSSTATS_MAIN SREADTIM .708
SYSSTATS_MAIN MREADTIM 5.327
SYSSTATS_MAIN CPUSPEED 2591
SYSSTATS_MAIN MBRC 32
SYSSTATS_MAIN MAXTHR
SYSSTATS_MAIN SLAVETHR
Очевидно, что поменялись те же самые 4 параметра.
MBRC получился тот же самый: 32*32К= 1M, а вот IOTFRSPEED подрос.
На CPUSPEED, SREADTIM и MREADTIM опция 'EXADATA' не влияет.
exec dbms_stats.gather_system_stats('EXADATA');
На какие параметры она влияет? Возьмем базу, в которой никогда системная статистика не собиралась, соберем ее и посмотрим, какие параметры изменились:
SQL> select * from aux_stats$;
SNAME PNAME PVAL1 PVAL2
--------------- ----------- ---------- ----------------
SYSSTATS_INFO STATUS COMPLETED
SYSSTATS_INFO DSTART 11-30-2012 18:21
SYSSTATS_INFO DSTOP 11-30-2012 18:21
SYSSTATS_INFO FLAGS 1
SYSSTATS_MAIN CPUSPEEDNW 2588.93427
SYSSTATS_MAIN IOSEEKTIM 10
SYSSTATS_MAIN IOTFRSPEED 4096
SYSSTATS_MAIN SREADTIMSYSSTATS_MAIN MREADTIMSYSSTATS_MAIN CPUSPEED
SYSSTATS_MAIN MBRC
SYSSTATS_MAIN MAXTHR
SYSSTATS_MAIN SLAVETHR
13 rows selected.
SQL> set timing on
SQL> exec dbms_stats.gather_system_stats('EXADATA');
PL/SQL procedure successfully completed.
Elapsed: 00:00:37.97
SQL> select * from aux_stats$;
SNAME PNAME PVAL1 PVAL2
--------------- ----------- ---------- ----------------
SYSSTATS_INFO STATUS COMPLETED
SYSSTATS_INFO DSTART 01-14-2013 15:06
SYSSTATS_INFO DSTOP 01-14-2013 15:06
SYSSTATS_INFO FLAGS 1
SYSSTATS_MAIN CPUSPEEDNW 2586
SYSSTATS_MAIN IOSEEKTIM 3
SYSSTATS_MAIN IOTFRSPEED 164076
SYSSTATS_MAIN SREADTIM
SYSSTATS_MAIN MREADTIM
SYSSTATS_MAIN CPUSPEED
SYSSTATS_MAIN MBRC 128
SYSSTATS_MAIN MAXTHR
SYSSTATS_MAIN SLAVETHR
13 rows selected.
MBRC = 128 * 8K = 1M.
Интересно, команда dbms_stats.gather_system_stats('EXADATA') измеряет ли что-то или записывает одни и те же данные? Для продолжения эксперимента возьмем вторую БД с другим размером блока (32К) и повторим запуск:
SNAME PNAME PVAL1 PVAL2
-------------- ----------- ---------- ----------------
SYSSTATS_INFO STATUS COMPLETED
SYSSTATS_INFO DSTART 12-21-2012 11:34
SYSSTATS_INFO DSTOP 12-27-2012 10:38
SYSSTATS_INFO FLAGS 1
SYSSTATS_MAIN CPUSPEEDNW 2602.46361
SYSSTATS_MAIN IOSEEKTIM 10
SYSSTATS_MAIN IOTFRSPEED 4096
SYSSTATS_MAIN SREADTIM .708
SYSSTATS_MAIN MREADTIM 5.327
SYSSTATS_MAIN CPUSPEED 2591
SYSSTATS_MAIN MBRC 11
SYSSTATS_MAIN MAXTHR
SYSSTATS_MAIN SLAVETHR
SQL> exec dbms_stats.gather_system_stats('EXADATA');
PL/SQL procedure successfully completed.
SQL> select * from aux_stats$;
SNAME PNAME PVAL1 PVAL2
-------------- ----------- ---------- ----------------
SYSSTATS_INFO STATUS COMPLETED
SYSSTATS_INFO DSTART 01-14-2013 15:21
SYSSTATS_INFO DSTOP 01-14-2013 15:21
SYSSTATS_INFO FLAGS 1
SYSSTATS_MAIN CPUSPEEDNW 2580
SYSSTATS_MAIN IOSEEKTIM 3
SYSSTATS_MAIN IOTFRSPEED 235038
SYSSTATS_MAIN SREADTIM .708
SYSSTATS_MAIN MREADTIM 5.327
SYSSTATS_MAIN CPUSPEED 2591
SYSSTATS_MAIN MBRC 32
SYSSTATS_MAIN MAXTHR
SYSSTATS_MAIN SLAVETHR
Очевидно, что поменялись те же самые 4 параметра.
MBRC получился тот же самый: 32*32К= 1M, а вот IOTFRSPEED подрос.
На CPUSPEED, SREADTIM и MREADTIM опция 'EXADATA' не влияет.