现在有一个SQL语句。同样的表,同样的条件,查出显示记录为0.087秒
但是我现在求所查询出来的数据的COUNT就要十几秒才能出来
请问有高手知道怎么解决不?
我用的是Oracle9i

解决方案 »

  1.   

    你的语句是怎么写的?
    select count(1) from tablename where ...
    这样试试
      

  2.   

    select count(1) from table where ---要十几秒

    select * from table where     --只要0.几秒
      

  3.   

    --执行计划就是看看你的语句怎么执行的
    scott@YPCOST> set autot on exp;--在sqlplus里可以通过这个自动输出执行计划
    scott@YPCOST> select * from dept;    DEPTNO DNAME          LOC
    ---------- -------------- -------------
            90 dfd            dfd
            60 suzhou         we
            70 suzhou
            50 NANCHANG
            10 ACCOUNTING     NEW YORK
            20 RESEARCH       DALLAS
            30 SALES          CHICAGO
            40 OPERATIONS     BOSTON已选择8行。
    执行计划
    ----------------------------------------------------------
    Plan hash value: 3383998547--------------------------------------------------------------------------
    | Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
    --------------------------------------------------------------------------
    |   0 | SELECT STATEMENT  |      |     8 |   128 |     3   (0)| 00:00:01 |
    |   1 |  TABLE ACCESS FULL| DEPT |     8 |   128 |     3   (0)| 00:00:01 |
    --------------------------------------------------------------------------scott@YPCOST> select count(*) from dept;  COUNT(*)
    ----------
             8
    执行计划
    ----------------------------------------------------------
    Plan hash value: 3380918908-------------------------------------------------------------------------------------------
    | Id  | Operation        | Name                           | Rows  | Cost (%CPU)| Time     |
    -------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT |                                |     1 |     1   (0)| 00:00:01 |
    |   1 |  SORT AGGREGATE  |                                |     1 |            |          |
    |   2 |   INDEX FULL SCAN| BIN$8mPMMewIQa6BxCHkeZP6Wg==$0 |     8 |     1   (0)| 00:00:01 |
    -------------------------------------------------------------------------------------------
      

  4.   

    select count(1) from table where ---要十几秒
    --这个要走排序,时间长