backup SERVER 数据是从生产机器上exp  再imp 的, 数据一样.
先谢了!

解决方案 »

  1.   

    查查执行计划是否一样?怀疑是imp后没做分析造成优化器选择了错误的执行计划。
      

  2.   

    是在生产机器上执行慢,在BACUP SERVER 执行非常快
      

  3.   

    高手请帮我分析分析,谢谢!
    正式环境
    Execution Plan
    ----------------------------------------------------------
       0      SELECT STATEMENT Optimizer=CHOOSE
       1    0   VIEW
       2    1     COUNT (STOPKEY)
       3    2       FILTER
       4    3         MERGE JOIN
       5    4           SORT (JOIN)
       6    5             NESTED LOOPS
       7    6               TABLE ACCESS (FULL) OF 'DBMS_DISTRIBUTOR_REGIO
              N'   8    6               TABLE ACCESS (BY INDEX ROWID) OF 'DISTRIBUTOR_
              INFO'   9    8                 INDEX (UNIQUE SCAN) OF 'PK_DBMS_DISTRIBUTOR_
              INFO' (UNIQUE)  10    4           SORT (JOIN)
      11   10             TABLE ACCESS (FULL) OF 'DBMS_CUSTOMER_INFO'
      12    3         INDEX (UNIQUE SCAN) OF 'DBMS_USER_REGION_PK' (UNIQUE
              )  13    3         INDEX (UNIQUE SCAN) OF 'DBMS_USER_REGION_PK' (UNIQUE
              )  14    3         INDEX (UNIQUE SCAN) OF 'DBMS_USER_REGION_PK' (UNIQUE
              )Statistics
    ----------------------------------------------------------
              8  recursive calls
            101  db block gets
           1843  consistent gets
            983  physical reads
              0  redo size
           6471  bytes sent via SQL*Net to client
            758  bytes received via SQL*Net from client
              5  SQL*Net roundtrips to/from client
              1  sorts (memory)
              1  sorts (disk)
             51  rows processed16:57:10 16:57:10 
    ==========================================================================================
    备份环境
    Execution Plan
    ----------------------------------------------------------
       0      SELECT STATEMENT Optimizer=CHOOSE
       1    0   VIEW
       2    1     COUNT (STOPKEY)
       3    2       FILTER
       4    3         MERGE JOIN
       5    4           SORT (JOIN)
       6    5             NESTED LOOPS
       7    6               TABLE ACCESS (FULL) OF 'DBMS_DISTRIBUTOR_REGIO
              N'   8    6               TABLE ACCESS (BY INDEX ROWID) OF 'DISTRIBUTOR_
              INFO'   9    8                 INDEX (UNIQUE SCAN) OF 'PK_DBMS_DISTRIBUTOR_
              INFO' (UNIQUE)  10    4           SORT (JOIN)
      11   10             TABLE ACCESS (FULL) OF 'DBMS_CUSTOMER_INFO'
      12    3         INDEX (UNIQUE SCAN) OF 'DBMS_USER_REGION_PK' (UNIQUE
              )  13    3         INDEX (UNIQUE SCAN) OF 'DBMS_USER_REGION_PK' (UNIQUE
              )  14    3         INDEX (UNIQUE SCAN) OF 'DBMS_USER_REGION_PK' (UNIQUE
              )Statistics
    ----------------------------------------------------------
            961  recursive calls
            286  db block gets
           2121  consistent gets
            974  physical reads
          20060  redo size
           6471  bytes sent via SQL*Net to client
            758  bytes received via SQL*Net from client
              5  SQL*Net roundtrips to/from client
              1  sorts (memory)
              1  sorts (disk)
             51  rows processed16:58:59 16:58:59 
      

  4.   

    看执行计划是一样的。还有一种可能就是生产库中磁盘碎片多,而备用库上是imp的,所以碎片少,这样全表扫描会快不少。
      

  5.   

    多谢了!我查查
    redo   size 
    这个大不同,这是不是问题所在?
      

  6.   

    是直接在生产的机器上面执行的sql语句?检查网络原因以及两个数据库的设置参数差异。
      

  7.   

    还有一种可能,就是相关表的统计数据(statistic)太旧了,对相关表做一下analysis
      

  8.   

    有可能是碎片的问题,我们以前也遇到过
    开发商开发的软件过度频繁的插入删除
    你用exp导出再用imp导入就可以清除碎片了
    当然先把外围的应用程序全部关了
      

  9.   

    生产机器配置比备份机好几倍,参数也改过了,
    在生产机器上exp imp到另外一个用户也试过了,没啥效果
      

  10.   

    还有一种可能,就是相关表的统计数据(statistic)太旧了,对相关表做一下analysis执行计划都一样,肯定不是统计数据的问题。是直接在生产的机器上面执行的sql语句?检查网络原因以及两个数据库的设置参数差异。我也觉得是客户端问题,楼主直接在生产及其上面执行下看看结果。
      

  11.   

    ...发现个问题,楼主的执行计划里面根本没有cost,就是说没有对表进行分析。楼主你先分析一下表,然后再比较两个执行计划比较能说明问题。
      

  12.   

    首先非常感谢 fenixshadow,我分析表之后确实跟备份机一样快了,
    但是我用同样的方法去分析另为一个表,导致ORACLE 占用内存不断加大,老师占用CPU %2-5% 
    能不能指点下在ORACLE 8.17上, analyze table table_name compute statistics ,要注意些什么?
    为什RUN后产生两种不同的效果。