sql语句:快速检索表中数据的行数 我有一表,数据行数在5000多万左右,字段有A,B,C,D,E,F,G;而且我已经建立了主键,是联合主键,在A,B,E上建立了联合主键,为什么我用select count(*) 检索行数速度还是特别慢?大概得花费1分30秒左右。请问有较快的方法吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 表数据量大!试试并行查询吧!select /*+parallel(t,15)*/ count(*) from table1 t; 只能用 联合主键(A,B,E) 第一列 select count(A) select count(*) 不能用到你建的索引,执行的全表扫描,用count(A) 指望优化count,可能性很小,一般用count(*) 即可。最好别钻牛角尖。 ABE三列上可以null吗?select count(*)的执行计划是table access full? select count(b) from table t --在b列上建索引 count(*) 执行了全表现扫描,用count(a) 不知道为什么怎么多人都会认为count(*)一定走全表扫描?如果table上有index,并且index所包含的column都不能为null。oracle scan index就能知道table有多少row。如果index包含的column可以为null,index是不会包含null 行的。这个index就不能被用来计算总行数。 嗯,count(*)是不做全表扫描的,效果如同count(a),不用指望max(rowid)效果更差。 一个SQL查询问题,麻烦哪位大哥帮小弟看一下,谢了! 如何检查表结构是否损坏 弱问:关于oci连接oracle的问题 Data Guard的备库能被查询吗?用Stream呢? 数据库设计时字段的长度一定要和实际一样吗? 关于大批量数据高效入库 触发器中调用存储过程? 能不能授权其它用户执行JOB??? 如何备份30G地数据库到10G硬盘 #*#*#这样的sql语句怎么写??在线揭贴100分******************* between and 的返回值是什么? Oracle 怎么监视某个表记录的更新 自动发邮件通知
select /*+parallel(t,15)*/
count(*) from table1 t;
select count(*)的执行计划是table access full?
如果table上有index,并且index所包含的column都不能为null。oracle scan index就能知道table有多少row。
如果index包含的column可以为null,index是不会包含null 行的。这个index就不能被用来计算总行数。