Num_Rows和计数不匹配

Naa*_*aaN 1 sql oracle

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

Select table_name, Num_Rows 
from all_tables 
where OWNER = 'OWNER_NAME' and table_name='TABLE_NAME1';
Run Code Online (Sandbox Code Playgroud)

给了我一个结果401.

select count(*) from TABLE_NAME1
Run Code Online (Sandbox Code Playgroud)

给了我一个数200.在尝试时TABLE_NAME2,两者都返回相同的值.
这里发生了什么?

nta*_*lbs 5

在值ALL_TABLES.NUM_ROWS(或USER_TABLES.NUM_ROWS)仅仅是一个统计通过生成的信息analyze table ...dbms_stats.gather_table_stats程序.这不准确,不是实时信息.

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