Num_Rows和计数不匹配

时间:2014-02-07 02:51:01

标签: sql oracle

我对以下不匹配感到困惑。

Select table_name, Num_Rows 
from all_tables 
where OWNER = 'OWNER_NAME' and table_name='TABLE_NAME1';

给我401的结果。

select count(*) from TABLE_NAME1

给了我一个200的计数。当试用TABLE_NAME2时,两者都返回相同的值 这里发生了什么?

1 个答案:

答案 0 :(得分:5)

ALL_TABLES.NUM_ROWS(或USER_TABLES.NUM_ROWS)中的值只是analyze table ...dbms_stats.gather_table_stats程序生成的统计信息。这不准确,不是实时信息。

Oracle优化器使用这些统计值来计算SQL语句的成本并选择执行计划。