我对以下不匹配感到困惑.
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,两者都返回相同的值.
这里发生了什么?
在值ALL_TABLES.NUM_ROWS(或USER_TABLES.NUM_ROWS)仅仅是一个统计通过生成的信息analyze table ...或dbms_stats.gather_table_stats程序.这不准确,不是实时信息.
Oracle优化器使用这些统计值来计算SQL语句的成本并选择执行计划.
| 归档时间: |
|
| 查看次数: |
217 次 |
| 最近记录: |