对两表都做统计查询结果如下(都经过了至少10次以上的测试)
      表a                              表b
数据库a   0.11~0.125 s   220 条记录           2.8~12 s        268700 条记录  
数据库b   0.015~0.031 s  127 条记录          0.031~0.047 s    226933 条记录另:  数据库a的表b  HWM  7700多,used blocks是 3500多
      数据库b的表b  HWM  2700多,used blocks是 2500多
数据库a,b在不同的服务器上,都做过表分析,a中表b分析后数据变化量较大,b中表b没变过。
问题是对表b统计的时间差为什么那么大.

解决方案 »

  1.   


    1. 2个服务器是否一样?
    2. 数据库是否一样? 
    3. 在不同服务器上,他们的执行计划是否一样? 
    ------------------------------------------------------------------------------
    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
      

  2.   

    会的
    因为ORACLE在选择执行计划的时候就是基于收集的这些统计信息的
    如果统计信息不足或者过于陈旧而不能反应出表当前的情况
    那么产生的执行计划可能就不合适 造成不必要的资源浪费
      

  3.   

    我的执行计划是在command window里看到的, 其中数据库a表b的执行计划是index fast full scan  cardinality 是 155999(发现是user_table里的row_num). 都没建过索引的,但都有主键.还有就是,数据库b是在内网上, a是在外网上,而且表b的数据在不停的更新(这里有没问题?). sql 语句是select count(*) from 表a/表b