oracle中类似查询的行数不匹配
我想检查oracle生产数据库中每个表的行数。因此,为了测试目的,我运行了两个查询 1)oracle中类似查询的行数不匹配,oracle,oracle11g,Oracle,Oracle11g,我想检查oracle生产数据库中每个表的行数。因此,为了测试目的,我运行了两个查询 1) 选择所有者、表名、行数 从所有表格中 其中OWNER='XYZ'和TABLE_NAME='Application' 按表格名称asc排序 2) 从XYZ.Application中选择count(*) 所以,对于第一个查询,第一个查询的结果是829。而对于第二个查询,它是836。那么,有谁能帮助我了解我需要检查什么来识别这种差异 谢谢你们的回复。 我想知道如何在单个查询中获得所有表的精确行数?所有表。NUM\
选择所有者、表名、行数
从所有表格中
其中OWNER='XYZ'和TABLE_NAME='Application'
按表格名称asc排序代码>
2) 从XYZ.Application中选择count(*)
所以,对于第一个查询,第一个查询的结果是829。而对于第二个查询,它是836。那么,有谁能帮助我了解我需要检查什么来识别这种差异
谢谢你们的回复。
我想知道如何在单个查询中获得所有表的精确行数?所有表。NUM\u ROWS
是Oracle收集的统计数据。这可能是一个估计。或者,它可能准确但过时
在任何情况下,您都不能查看它并得出结论,即您看到的是表中当前的确切行数
您的第二个查询给出了表中当前行的确切数目。来自所有表的第一个查询基于统计信息,这些统计信息不一定是最新的,也不一定完全准确
第二个查询实际上是扫描表数据本身并对行进行计数。它总是准确的。查看所有表的上次分析的列。这是最后一次收集统计数据。它可能无法反映表的最新状态 NUM_行仅反映提交的事务。另一方面,COUNT(*)包括运行COUNT(*)查询的会话中的未提交事务。您是否刚刚插入了七行,但尚未提交它们