如何快速的获取oracle数据库中表中记录行数不使用selectcount方式

上传人:xiao****1972 文档编号:84219670 上传时间:2019-03-03 格式:DOC 页数:2 大小:42.50KB
返回 下载 相关 举报
如何快速的获取oracle数据库中表中记录行数不使用selectcount方式_第1页
第1页 / 共2页
如何快速的获取oracle数据库中表中记录行数不使用selectcount方式_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《如何快速的获取oracle数据库中表中记录行数不使用selectcount方式》由会员分享,可在线阅读,更多相关《如何快速的获取oracle数据库中表中记录行数不使用selectcount方式(2页珍藏版)》请在金锄头文库上搜索。

1、数据库版本:Oracle 10G今天查询下数据库中一个表的具体记录数,使用select count(1) from tablename,执行起来速度非常慢,所以想看看是否有更好的办法,发现,在tabs表已经存在了该表记录数据了,直接运行如下sql就可以了Java代码 1. selectTABLE_NAME,CC.num_rows,CC.last_analyzed 2. fromtabsCC经过查询资料发现,从tabs表中获取的数据不是非常准确,在tabs表中存在一个字段last_analyzed,有最后分析的日期,好像都不是最新,可能导致数据不是非常准确,可以通过在command下面执行EXE

2、C dbms_stats.gather_table_stats(【空间名称】,【tablename】,cascade=true);,可以刷新tabs表中的num_rows列,以及最后更新时间Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 Connected as rep_heaSQL EXEC dbms_stats.gather_table_stats(【username】,【tablename】,cascade=true);-单个表统计数据的统计数据更新PL/SQL procedure succes

3、sfully completedSQL EXEC dbms_stats.gather_schema_stats(【username】,estimate_percent=100,cascade= TRUE);-更新整个用户所有表的统计数据更新Java代码 1. selectTABLE_NAME,CC.num_rows,CC.last_analyzed 2. fromtabsCC 3. select TABLE_NAME, CC.num_rows, CC.last_analyzed from tabs CC 执行完毕之后,发现last_analyzed变成了刚才执行 dbms_stats时间问题的起因:最近发现一张分区表:从dba_table得到的统计信息跟 dba_tab_stats/dba_tab_partitions查得的信息出入很大,后来查得的原因是: 脚本里调用dbms_ddl来收集统计信息,而dbms_ddl实际上是调用analyze命令,analyze基本上不会用来收集统计信息了。我们通常是调用dbms_stats来统计的。即使数据量出现大的变动,analyze也不会反映到dba_tables,这就再次说明用analyze来收集统计信息是存在问题的,正当途径还是用dbms_stats来收集

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号