Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.server -> Re: NUM_ROWS vs COUNT(*) anomaly
You must check the stastistics on the table;
analyze table table_a estimate statistics;
or
analyze table table_a compute statistics;
after this they are synchron.
Do this every day one time ,if your optimizer is cost based.
An insert or delete does not modify the value of num_rows in the
data-dictionary.
Don't use this field for exact counting for your application. It is only
used bei internal Optimizer to generate
an execution plan.
So long
"s. hunter" wrote:
> Hi,
>
> I noticed a weird anomaly when checking that the data in my database had
> loaded properly.
>
> If I do
>
> SELECT table_name, num_rows
> FROM user_tables
> WHERE table_name='table_A';
>
> I get a value for num_rows of 5424908.
>
> If, however I just do
>
> SELECT count(*)
> FROM table_A;
>
> I get a value of 5424804 (incidentally, the correct value).
>
> OK, so I know that num_rows is from the data dictionary and the count is
> directly on the table, but why are the values different? Any ideas??
>
> Thanks,
>
> Sarah
--
![]() |
![]() |