手动 统计信息 试验 exec dbms_stats.gather_table_stats('IDMP','table');

手动 统计信息 试验 exec dbms_stats.gather_table_stats('IDMP','table');




SQL> exec dbms_stats.gather_table_stats('IDMP','TEST_GDDG');

PL/SQL 过程已成功完成。

SQL>
select  num_rows from dba_tables
   where owner='IDMP' and table_name ='TEST_GDDG';


  NUM_ROWS
----------
       182

SQL> truncate table test_gddg
  2  ;

表被截断。

SQL> select  num_rows from dba_tables
  where owner='IDMP' and table_name ='TEST_GDDG';


  NUM_ROWS
----------
       182

SQL> exec dbms_stats.gather_table_stats('IDMP','TEST_GDDG');

PL/SQL 过程已成功完成。

SQL>

select  num_rows from dba_tables
    where owner='IDMP' and table_name ='TEST_GDDG';


  NUM_ROWS
----------
         0

SQL>


另外 补充
http://www.dbanotes.net/database/oracle_dbms_stats.html
导出和回复统计信息

用 DBMS_STATS 构造 STATS 环境

dbms_stats VS analyze



http://yumianfeilong.com/2007/05/26/dbms_stats-vs-analyze/



众所周知,Table是分区的时候,analyze根据所有partition上的已有的统计信息“计算”出整个表级别上的统计信息;而dbms_stats是实际去计算整个表范围的统计信息,因此表级别的统计信息比analyze更精确,反映表上真实的情况.




你可能感兴趣的:(手动 统计信息 试验 exec dbms_stats.gather_table_stats('IDMP','table');)