我听说dba_segments这个数据字典可以计算表的大小和表的平均行大小,然后相除得到大概的行数(因为是海量级的,大概就可以了),但是我在这个数据字典中我只看到表的大小-bytes 这个字段,没有看到表的平均行大小这个字段,有没有谁用过这个方法的,求助!!!因为数据量很大,只要能得到大概值就可以了,不需要十分的精确。
嗯,count(pk),确实是比count(*)快,因为不需要全表扫描,走主键Index就可以了,但是这种方法不是最好的方法,这条命令下去,至少也要半个小时才会有结果。
嗯,这种方法我也采用过,但是要先将表分析一下all_tables里面才有记录
analyze table t COMPUTE STATISTICS;
select NUM_ROWS from user_tables where TABLE_NAME=' T ';
但是analyze这个命令分析表非常的慢,大概和count(pk)差不多
晕死 大概和count(pk)差不多?
十亿条记录分析怎么也得3-10小时。 但是这个表分析是必须要做的呀。
不然索引,就会统计失真。