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)
------------------------------------------------------------------------
相关问答:
安装11g的06,打补丁升到07,从ODBC里面看,有
Oracle in OraOdac11g_home1 11.01.00.07
从注册表看HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\下面的Driver和Setup都是我的安装路径
"D:\\app\\Ad ......
在lomboz eclipse中的window->show view->others->中的怎样加入connectivity中的data source中连接oracle时只有8,9,10这三个版本,怎样才能连接oracle11这个版本呢??????????????
......
我写的一个Job
declare
job1 integer;
begin
dbms_job.submit(job1,
'Sale_FinanceUseFee(4,null,null,null);',
TRUNC(SYSDATE)+1.103, ......
表A:a1 a2 a3 a4 a5 a6,
表B:b1 b2 b3 b4 b5 b6,
表C:c1 c2 c3 num
在a1 a2 a3上建了个索引,同样b1 b2 b3也有索引,数据量在1000万左右
1、查询时where条件的应该顺序怎么写? 好像oracle中解 ......