一、系统统计信息:

select pname, pval1 from sys.aux_stats$ where sname='SYSSTATS_MAIN';

PNAME                               PVAL1
------------------------------ ----------
CPUSPEED
CPUSPEEDNW                     1751.75879
IOSEEKTIM                              10
IOTFRSPEED                           4096
MAXTHR
MBRC
MREADTIM
SLAVETHR

SREADTIM

 1、非工作负载统计:这些信息可以在没有明显数据库负载的情况下收集
     cpuspeednw:系统上每个cpu每秒钟可以执行的标准操作的次数。后缀nw表明这是个非工作负载下的估计
      ioseektim:在磁盘上定位数据的平均时间。虽然被称为寻道(seek)时间,但实际上是从磁盘检索一个数据块的总时间,
         包含磁盘的旋转时延、传偷时延与寻道时间

      iotfrspeed:磁盘的IO传偷速率(单位为字节/毫秒)


 2、工作负载统计:这些度量是基于真实的Oracle数据库活动,需要在典型的数据库活动期间收集
   sredtim:执行单块读取的平均时间
   mreadtim:执行多块读取的平均时间
   cpuspeed:系统上每个cpu每秒钟可以执行的标准操作的次数。与cpuspeednw不同,它是基于真实的Oracle数据库活动计算出来的

二、收集统计信息

Automatic Optimizer Statistics Collection:搜集所有对象的统计数据

SQL>  select client_name,status from dba_autotask_client;
 CLIENT_NAME                              STATUS
 ---------------------------------------- ----------------
 auto optimizer stats collection          ENABLED
 auto space advisor                       ENABLED
 sql tuning advisor                       ENABLED
 SQL> select client_name,max(job_start_time) from dba_autotask_job_history group by client_name;
 CLIENT_NAME                           MAX(JOB_START_TIME)
 ------------------                   -------------------------
 auto optimizer stats collection       27-1月 -13 10.08.44.549000 下午 +08:00 
 SQL> select to_char(last_analyzed,'YYYY-MM-DD HH24:MI:SS') FROM DBA_TABLES WHERE TABLE_NAME='CLAIMS';
 TO_CHAR(LAST_ANALYZED,'YYYY-MM-DDHH24:
 --------------------------------------
 2013-01-24 22:02:53

LAST_ANALYZED都是昨天晚上重新记录的时间

1、自动统计信息收集
       dbms_auto_task_admin.disable(client_name=>'auto optimizer stats collection',operation=>null,window_name=>null);

       dbms_auto_task_admin.enable(client_name=>'auto optimizer stats collection',operation=>null,window_name=>null);

 2、过时的统计信息
       ALL_TAB_MODIFICATIONS

       dbms_stats.gather_schema_stats(ownname=>USER,options=>'GATHER STALE');


 3、手工收集统计信息

   (1)使用默认设置,收集一张表的统计信息
   DBMS_STATS.gather_table_stats(ownname =>USER,tabname=>'T1');


   (2)收集整个模式的统计信息
   DBMS_STATS.gather_schema_stats(ownname=>'GYJ');


   (3) 收集一个模式中任何"过时"的表的统计信息
   DBMS_STATS.gather_schema_stats(ownname=>'GYJ',options=>'GATHER STALE');


   (4) 创建所有索引列的直方图
   DBMS_STATS.gather_schema_stats(ownname=>'GYJ',method_opt=>'FOR ALL INDEXED COLUMNS SIZE AUTO');


   (5) 将默认收集方式设置为只为数据倾斜分布的索引创建直方图
   DBMS_STATS.gather_schema_stats(ownname=>'GYJ',method_opt=>'FOR ALL INDEXED COLUMNS SIZE SKEWONLY');


   (6)创建并导出统计信息到一张统计表中
  DBMS_STATS.create_stat_table(ownname=>USER,stattab=>'GyjStatTab');
    DBMS_STATS.export_table_stats(ownname=USER,tabname=>'T1',stattab=>'GyjStatTab',statid=>'Demo1');


   (7)从一张统计信息表中导入统坟信息到当前模式
    DBMS_STATS.import_table_stats(ownname=>USER,tabname=>'T1',stattab=>'GyjStatTab',statid=>'Demo1');

 4、动态抽样
    optimizer_dynamic_sampling:可以将它设置为0-10的一个值。选择0时不会产生抽样,而设置为10,当sql所涉及的表的统计信息
     丢失或不完整,抑或sql在两个或更多列上有过滤条件,系统就将读取这些表的所有块。默认值是2,它指示优化器仅对未分析的

     表进行少量数据块抽样


gyj@OCM>  select client_name,status from dba_autotask_task;

CLIENT_NAME                                                      STATUS
---------------------------------------------------------------- --------
sql tuning advisor                                               ENABLED
auto optimizer stats collection                                  ENABLED
auto space advisor                                               ENABLED

gyj@OCM>  select window_name,autotask_status from dba_autotask_window_clients;

WINDOW_NAME                    AUTOTASK
------------------------------ --------
MONDAY_WINDOW                  ENABLED
TUESDAY_WINDOW                 ENABLED
WEDNESDAY_WINDOW               ENABLED
THURSDAY_WINDOW                ENABLED
FRIDAY_WINDOW                  ENABLED
SATURDAY_WINDOW                ENABLED
SUNDAY_WINDOW                  ENABLED

7 rows selected.


gyj@OCM> select window_name, job_name, job_start_time from (select * from dba_autotask_job_history where client_name='auto optimizer stats collection' order by window_start_time desc) where rownum<4;


WINDOW_NAME                                                       JOB_NAME                                            JOB_START_TIME
----------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------
THURSDAY_WINDOW                                                   ORA$AT_OS_OPT_SY_144                                25-JUL-13 10.00.01.190522 PM PRC
WEDNESDAY_WINDOW                                                  ORA$AT_OS_OPT_SY_124                                24-JUL-13 10.00.02.352260 PM PRC
SUNDAY_WINDOW                                                     ORA$AT_OS_OPT_SY_104                                21-JUL-13 11.03.04.069348 PM PRC