row num给出零记录

时间:2014-03-17 11:06:54

标签: sql oracle count oracle11g

我需要在表格中获取总数没有记录的分页目的..它有大约100万条记录...计数是作为页面加载的一部分计算的...我可以做计数查询但是它需要很少更多的时间,因此增加页面加载的时间。所以,以避免我已经使用

select ROW_NUMS,OWNER from ALL_TABLES where table_name='table1'

但问题是,对某些表的查询会将结果显示为零,有时计数也不正确(与计数查询不同)

知道如何更新表的all_tables数据以及如何更新all_table

3 个答案:

答案 0 :(得分:1)

如果您想要表中的确切记录数,则需要select count(*)。这个结果是正确的。 NUM_ROWS从未提供确切的行数。

你可以收集表格,但这会给你估计数。

exec dbms_stats.gather_table_stats('<OWNER>', '<TABLE_NAME>');

答案 1 :(得分:0)

要获得准确的行数,您可以让数据库在将数据发送到客户端之前进行繁重的工作,例如:

SELECT t.*
      ,COUNT(*) OVER () AS row_count
FROM   my_table t;

答案 2 :(得分:-1)

您需要运行ANALYZE语句才能正确更新该列