oracle select count(*) 很慢

lyvscf 2009-12-08 01:32:35
oracle select count(*) 很慢 表中大楷有1千万条数据 我想得到 记录数 有没有好的方法优化 请赐教
...全文
2010 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyvscf 2009-12-10
  • 打赏
  • 举报
回复
真的没有办法了!? 哎! 我不管是count(*) count(索引) count(主键) 还是 count(rowid)
都是用了 5 、6秒 哎 这种效率怎么能行!?
myl525 2009-12-09
  • 打赏
  • 举报
回复
count(*) 比count(1) 要快,
理论上count(索引列) 更快

但是实践证明 这三种方法 没有明显性能差别
《ORACLE语句优化规则汇总》里讲的
tianyazlf 2009-12-08
  • 打赏
  • 举报
回复
count(1), sum(1), count(rowid)
感觉速度应该都比count(*)快,没试过,猜的。

谁测试了,发下具体性能。
碧水幽幽泉 2009-12-08
  • 打赏
  • 举报
回复
count(rowid)要快些!
huangdh12 2009-12-08
  • 打赏
  • 举报
回复
select count(1) 吧。。
shiyiwan 2009-12-08
  • 打赏
  • 举报
回复
2楼的做法是比较好的

借楼主的帖子问个问题,

如果是联合主键,且联合主键中某一列字段可以为null,那么查询表中记录总数又该如何?
zhaoyhdev 2009-12-08
  • 打赏
  • 举报
回复
Sum(1) 最快了、
gxjwqm 2009-12-08
  • 打赏
  • 举报
回复
count(rowid)
Richard345265669 2009-12-08
  • 打赏
  • 举报
回复
count(rowid)这是最快的方式了
lixinbill 2009-12-08
  • 打赏
  • 举报
回复
count(rowid)这是最快的方式了
Phoenix_99 2009-12-08
  • 打赏
  • 举报
回复
count(rowid)
qq82296344 2009-12-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 crazylaa 的回复:]
count(rowid)据说最快,不知道了。
[/Quote]
是啊 有人测试过。
Dave 2009-12-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hyrongg 的回复:]
语句上还能怎么优化?很多讨论count(*)和count(1)效率问题,都差不多

楼主的表如果有一个非空的主键,试试 count(主键) 看看效果如何

[/Quote]

还与服务器性能也有点关系..





------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
网上资源: http://tianlesoftware.download.csdn.net
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
Q Q 群:62697716
crazylaa 2009-12-08
  • 打赏
  • 举报
回复
count(rowid)据说最快,不知道了。
hyrongg 2009-12-08
  • 打赏
  • 举报
回复
语句上还能怎么优化?很多讨论count(*)和count(1)效率问题,都差不多

楼主的表如果有一个非空的主键,试试 count(主键) 看看效果如何

bzcnc 2009-12-08
  • 打赏
  • 举报
回复
SELECT COUNT(主键) 速度稍微快一些,即使不使用主键,设置某个具体的字段,应该也快

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧