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 VS analyze
http://yumianfeilong.com/2007/05/26/dbms_stats-vs-analyze/
众所周知,Table是分区的时候,analyze根据所有partition上的已有的统计信息“计算”出整个表级别上的统计信息;而dbms_stats是实际去计算整个表范围的统计信息,因此表级别的统计信息比analyze更精确,反映表上真实的情况.