我的查询如下
select owner, table_name,num_rows from all_tables
某些表格num_rows
的为0,但有些表num_rows
显示为null
我没有区分这两者。
null
会出现什么情况,何时显示0?
谢谢
答案 0 :(得分:4)
我认为null
显示在没有统计信息的表格上。 Last_analyzed
也应为null
。尝试使用Last_analyzed
进行查询并进行检查。
select owner, table_name,num_rows, last_analyzed
from all_tables;
答案 1 :(得分:2)
在ALL_TABLES reference NUM_ROWS
列中标有星号,指向此注释:
标记为星号(*)的列仅在您收集时填充 使用ANALYZE语句或DBMS_STATS对表进行统计 封装
答案 2 :(得分:1)
这个问题因为那些表没有先分析你需要分析那些表然后统计数据适用于它们,这可能会解决问题。
答案 3 :(得分:0)
在看到有用的答案和评论之后,我在互联网上进行了一些搜索以提出以下查询
ANALYZE TABLE <TABLE_NAME> COMPUTE STATISTICS;
执行此查询后,对于那些之前显示null
的表,计数显示为0。
感谢您的所有投入。