读书人

怎么快速的获取oracle数据库中表中记录

发布时间: 2012-07-15 20:11:38 作者: rapoo

如何快速的获取oracle数据库中表中记录行数,不使用select count(1)方式

数据库版本:Oracle 10G

?

今天查询下数据库中一个表的具体记录数,使用

select count(1) from [tablename],执行起来速度非常慢,所以想看看是否有更好的办法,发现,在tabs表已经存在了该表记录数据了,直接运行如下sql就可以了

?

select TABLE_NAME, CC.num_rows, CC.last_analyzed from tabs CC

执行完毕之后,发现last_analyzed变成了刚才执行 dbms_stats时间

?

不同统计方式导致分区表的统计信息不同 Oracle — 作者 pingshx @ 15:47

问题的起因:最近发现一张分区表:从dba_table得到的统计信息跟 dba_tab_stats/dba_tab_partitions查得的信息出入很大,后来查得的原因是: 脚本里调用dbms_ddl来收集统计信息,而dbms_ddl实际上是调用analyze命令,analyze基本上不会用来收集统计信息了。我们通常是调用dbms_stats来统计的。

?

即使数据量出现大的变动,analyze也不会反映到dba_tables,这就再次说明用analyze来收集统计信息是存在问题的,正当途径还是用dbms_stats来收集。这个脚本也不知是哪位大佬写的。

?

?

http://pingshx.itpub.net/post/39434/497343

读书人网 >其他数据库

热点推荐