没什么关系。两个表的字段数一样吗?把第一个sql改成
select count(tableA.FieldA) from tableA
再比较一下。其中的FieldA是表tableA中的任意一个字段。

解决方案 »

  1.   

    tableA的列有索引吗?
    不至于这么慢吧
      

  2.   

    可能tableb有唯一性索引或者主键,而tablea没有
      

  3.   

    select count(*) from table 系统会自动使用第一个索引,.看看表上有没有\索引,
      

  4.   

    <select count(*) from table 系统会自动使用第一个索引>这个说法没有依据
      

  5.   

    我看了一下tableA,发现它确实没有索引,可是我加上主键和索引后,执行速度还是那么慢!
    这是为什么?
      

  6.   

    alter table tablea move;
    再统计一下
      

  7.   

    我也是看了执行计划的啊:)不管怎么弄,都是table full scan
      

  8.   

    无论你有没有索引都不会这么慢,才1000多条,是不是你的服务器还跑了别的很多东东,CPU或者硬盘的占用率特别高的关系,查查你的执行返回就知道怎么回事了。
      

  9.   

    请问如何才能察看到sql语句执行都调用了什莫资源?
      

  10.   

    是不是你表tableA字段很多?
    你试试
    select count(1) from tableA
      

  11.   

    select count(1) from tableA 运行时间还是一样多!
      

  12.   

    没有where即使有索引也不会使用的~
      

  13.   

    你把tableA和tableB的数据结构贴出来看看。
      

  14.   

    还有一种可能,在tableA上有事务
      

  15.   

    如果你的tableB有主键的话,你试试
    select count(主键) from tableB
      

  16.   

    select count(主键) from tableB
    时间还是一样多!
      

  17.   

    我发现在pl/sql developer 中执行select * from tableA语句,在列出所有数据(1495行)的第1400行时,有很长时间的停顿,大概有5-6秒。可能求总数的时间长是因为这个原因。可是为什莫会这样呢?
      

  18.   

    请问如何用toad察看sql语句执行时消耗的资源情况?
      

  19.   

    create table tablec as select * from tableA;
    rename tablea to Tablea_old;
    rename tablec to Tablea;
      

  20.   

    不知道为什么select * from tableA很快,就是select count(*) from tableA很慢