oracle select count(*) 很慢 表中大楷有1千万条数据  我想得到 记录数 有没有好的方法优化 请赐教

解决方案 »

  1.   

    SELECT COUNT(主键) 速度稍微快一些,即使不使用主键,设置某个具体的字段,应该也快
      

  2.   

    语句上还能怎么优化?很多讨论count(*)和count(1)效率问题,都差不多楼主的表如果有一个非空的主键,试试 count(主键) 看看效果如何
      

  3.   

    count(rowid)据说最快,不知道了。
      

  4.   


    还与服务器性能也有点关系..------------------------------------------------------------------------------
    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 
      

  5.   

    2楼的做法是比较好的借楼主的帖子问个问题,如果是联合主键,且联合主键中某一列字段可以为null,那么查询表中记录总数又该如何?
      

  6.   

    count(1), sum(1), count(rowid)
    感觉速度应该都比count(*)快,没试过,猜的。谁测试了,发下具体性能。
      

  7.   

    count(*) 比count(1) 要快,
    理论上count(索引列) 更快但是实践证明 这三种方法 没有明显性能差别
    《ORACLE语句优化规则汇总》里讲的
      

  8.   

         真的没有办法了!? 哎! 我不管是count(*) count(索引) count(主键) 还是 count(rowid)
       都是用了 5 、6秒 哎  这种效率怎么能行!?