【发布时间】:2010-12-22 20:52:32
【问题描述】:
我注意到在 Oracle 中,查询
SELECT COUNT(*) FROM sometable;
对于大表来说非常慢。看起来数据库实际上遍历每一行并一次增加一个计数器。我认为表格中的某处会有一个计数器,该表格有多少行。
如果我想在 Oracle 中检查表中的行数,最快的方法是什么?
【问题讨论】:
-
您检查行数的目的是什么?这是您临时做的事情吗?在 SQLDeveloper 或 SQL*PLUS 中用于您自己的目的,或者这将成为程序的一部分,例如获取行数,以便您可以显示“第 1 页,共 345 页”或其他内容?您是否需要准确的计数,或者近似值也可以?
-
顺便说一句,我在想如果你只需要一个近似值,这是你临时做的事情,那么如果你的表是最近分析的,你可以 SELECT NUM_ROWS FROM USER_TABLES WHERE TABLE_NAME = 'SOME_TABLE' ;
-
谢谢,这正是我所需要的,因为正如你所猜测的那样,我通常只是在寻找一个近似值。