USER_TABLE中的num_rows与 count(1)不一致的问题
我们在USER_TABLE中查找一张表,有个num_rows字段,其注释是 The number of rows in the table ,就是说表中数据行数,但是我们用 count(1)去查询,发现两个数据并不一致(如下图),为什么呢?
这个是因为USER_TABLE是全局的表,记录了数据库所有数据表的信息,不可能随着每一个表的变动而更新,我们可以看 user_tables中有一个字段是 LAST_ANALYZED,这个就是这个表对这个数据最后一次更新时间,比如我们现在测试这个表是 7月 18日 采集的数据,而现在已经是8月1日了。
我们对更新时间进行排序,发现最后更新时间也是因表而已,所以每次统计之前,可以对该表进行更新一次,再次查询,我们发现数据就一致了,但是和之前查询出来的数据一致,这就是我刚才说的,在企业级数据库中,很多数据表都会更新很频繁的
OVER