在对一个建有primary key索引的表作selecet count(*)查询时,无法得到正确的记录条数,请问有人知道怎么解决吗?

解决方案 »

  1.   

    为什么不能正确??
    是不是有data全为null的?用select count(primary key)看看。
      

  2.   

    全为null值的可能性不大,我用select distinct *查看过,另外在查看执行计划的时候,也很奇怪,明明card=34385,可能最后显示的结果却只有19203,下面是执行计划
    Execution Plan
    ----------------------------------------------------------
       0      SELECT STATEMENT Optimizer=ALL_ROWS (Cost=17 Card=1)
       1    0   SORT (AGGREGATE)
       2    1     PARTITION RANGE (ALL) (Cost=17 Card=34385)
       3    2       INDEX (FAST FULL SCAN) OF 'table_SHIJIAN' (INDEX)
               (Cost=17 Card=34385)
    SQL> select count(shijian) from table_name;COUNT(SHIJIAN)
    --------------
             19203
      

  3.   

    刚才用select distinct shijian 查看了一下,只有18000多
      

  4.   

    统计信息过时了,重新收集一次统计信息就可以了
    analyze table a compute statistics;
      

  5.   

    select count(*) from table_name;不就得了select count(shijian) from table_name;不一定正确
    select count(注键) from table_name;可以