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)
------------------------------------------------------------------------
相关问答:
with adod_dict do
begin
close;
commandtext:='select bgqxcode,count(*) wjsl from wscl_wsda_file where wjnd=:tnd group by bgqxcode'; ......
安装11g的06,打补丁升到07,从ODBC里面看,有
Oracle in OraOdac11g_home1 11.01.00.07
从注册表看HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\下面的Driver和Setup都是我的安装路径
"D:\\app\\Ad ......
我写的一个Job
declare
job1 integer;
begin
dbms_job.submit(job1,
'Sale_FinanceUseFee(4,null,null,null);',
TRUNC(SYSDATE)+1.103, ......
我在开发电脑上测试没有一点问题,但是在修改文件中的数据库IP地址以后,将war文件放上客户的电脑上以后老是创建连接失败,错误行在50行。
创建连接代码如下:
String proPath = this.getClass().getResource ......
别人给了我远程oracle数据库的信息:固定IP,端口号和SID,还有用户名和密码,他的数据库是oracle9i,我的也是,我如何才能连接到他的数据库得到数据,请高手帮忙指点一下,不胜感谢!
问题没有解决
wildwave, ......