oracle中类似查询的行数不匹配

oracle中类似查询的行数不匹配,oracle,oracle11g,Oracle,Oracle11g,我想检查oracle生产数据库中每个表的行数。因此,为了测试目的,我运行了两个查询 1) 选择所有者、表名、行数 从所有表格中 其中OWNER='XYZ'和TABLE_NAME='Application' 按表格名称asc排序 2) 从XYZ.Application中选择count(*) 所以,对于第一个查询,第一个查询的结果是829。而对于第二个查询,它是836。那么,有谁能帮助我了解我需要检查什么来识别这种差异 谢谢你们的回复。 我想知道如何在单个查询中获得所有表的精确行数?所有表。NUM\

我想检查oracle生产数据库中每个表的行数。因此,为了测试目的,我运行了两个查询

1)
选择所有者、表名、行数
从所有表格中
其中OWNER='XYZ'和TABLE_NAME='Application'
按表格名称asc排序

2)
从XYZ.Application中选择count(*)

所以,对于第一个查询,第一个查询的结果是829。而对于第二个查询,它是836。那么,有谁能帮助我了解我需要检查什么来识别这种差异

谢谢你们的回复。
我想知道如何在单个查询中获得所有表的精确行数?

所有表。NUM\u ROWS
是Oracle收集的统计数据。这可能是一个估计。或者,它可能准确但过时

在任何情况下,您都不能查看它并得出结论,即您看到的是表中当前的确切行数


您的第二个查询给出了表中当前行的确切数目。

来自
所有表的第一个查询基于统计信息,这些统计信息不一定是最新的,也不一定完全准确


第二个查询实际上是扫描表数据本身并对行进行计数。它总是准确的。

查看
所有表的
上次分析的
列。这是最后一次收集统计数据。它可能无法反映表的最新状态

NUM_行仅反映提交的事务。另一方面,COUNT(*)包括运行COUNT(*)查询的会话中的未提交事务。您是否刚刚插入了七行,但尚未提交它们