oracle count 性能
现在有二张表,表一和表二
使用 plsqldeveloper
表一大概有15个字段,约 140 万行记录,使用 count(1) 时执行了37秒,使用 count(*) 执行时间也在37秒
表二大概有7,8个字段,约 500 万行记录,使用 count(1) 时执行了约1.3多秒,使用 count(*) 执行了约0.8秒
本人有些疑惑,为什么记录少的表计数如此的慢,明天再来看。
请各位指点
表一有一个主键,二个索引,表二无主键,三个索引
關注
count(1)和count(主键) 这两个只扫描主键Index就可以得到数据,
count(*)是扫描表的。所以count(1)和count(主键)这两个效率高。
还有一种写法是count(ROWID)这也是只扫描Index的,效率高。
这是网上的说法, 其实没什么区别,没有必要在这个问题上花费过多的时间。 测试的表里是600w的数据,
select count(*) from custaddr;
SQL code:
SQL> EXPLAIN PLAN FOR select count(*) from custaddr;
已解释。
SQL> SELECT plan_table_output
2 from TABLE(DBMS_XPLAN.DISPLAY('PLAN_TABLE'));
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
Plan hash value: 2768036667
--------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)
------------------------------------------------------------------------
相关问答:
日前用oci函数查询oracle数据时出现个问题,就是在查询到date类型的数据时,使用pl/sql 查询oracle库中的数据显示是
2009-9-29 12:12:12
但是通过语句select * from tablename 查询,使用oci_fetch_array() ......
oracle not available
shared memory realm does not exist
请问高手这个问题如何解决?
http://www.inthirties.com/thread-109-2-1.html
指定下ORACLE_SID,ORACLE_HOME看看,不行就用1楼得方法了..
cm ......
在lomboz eclipse中的window->show view->others->中的怎样加入connectivity中的data source中连接oracle时只有8,9,10这三个版本,怎样才能连接oracle11这个版本呢??????????????
......
我在开发电脑上测试没有一点问题,但是在修改文件中的数据库IP地址以后,将war文件放上客户的电脑上以后老是创建连接失败,错误行在50行。
创建连接代码如下:
String proPath = this.getClass().getResource ......
问下高手:在oracle移植过程中 若想把数据库的部分表,视图以及数据从一台服务器移到另一台 用imp命令,,但是表空间不同怎么设置呢?希望高手指点下........
你建一个相同的表空间不就好了吗?
引用
你建一个相同 ......