oracle统计分析表信息

作用:

为了使基于CBO的执行计划更加准确

Oracle数据库中的优化器又叫查询优化器(Query Optimizer)。它是SQL分析和执行的优化工具,它负责生成、制定SQL的执行计划。Oracle的优化器有两种,基于规则的优化器(RBO)与基于代价的优化器(CBO)

                    RBO: Rule-Based Optimization 基于规则的优化器

                    CBO: Cost-Based Optimization 基于代价的优化器

   RBO自ORACLE 6以来被采用,一直沿用至ORACLE 9i. ORACLE 10g开始,ORACLE已经彻底丢弃了RBO

 

统计分析表信息之前必须保证表统计分析没有被锁住

1、查询用户下统计分析锁住的表

select OWNER, TABLE_NAME, LAST_ANALYZED, STATTYPE_LOCKED, STALE_STATS

        from DBA_TAB_STATISTICS

where STATTYPE_LOCKED is not null  and owner = upper('GZ_GYRX_0726')  and table_name not like '%$%';

2、解除锁状态

命令窗口: 

               exec dbms_stats.unlock_table_stats('GZ_GYRX_0726','T_S_DC_CURY');

PL/SQL:

             begin

                      dbms_stats.unlock_table_stats('GZ_GYRX_0726','T_S_DC_CURY');

             end;

 

3、重新统计分析表信息

                       begin

                               dbms_stats.gather_table_stats('GZ_GYRX_0726','A000087_ACTVAL');

                       end;

 

     2和3可以同时执行:

begin

        dbms_stats.unlock_table_stats('GZ_GYRX_0726','T_S_DC_CURY');

       dbms_stats.gather_table_stats('GZ_GYRX_0726','A000087_ACTVAL');

end;

 

可以解锁、重新统计分析某一用户所有的对象(包括表、索引、簇)信息:

begin

        dbms_stats.unlock_schema_stats('GZ_GYRX_0726');

        dbms_stats.gather_schema_stats('GZ_GYRX_0726');

end;

 

 

你可能感兴趣的:(ORACLE)