各位大侠,小弟碰到个头疼的问题。将一个Oracle数据库文件导入到两个配置不一样的机器上,这两个机器都配置很高(一个是IBM P770,另一个也是个服务器 8个cpu,16G内存)。但其中一个机器执行起来超慢(8cpu的那台机器)。现在用同一条sql语句在两台机器上执行,查看解释执行计划。cost值相同,但速度慢的那台中的 cardinality(基数) 和 bytes(字节)都明显比另一台大很多。请问这种情况可能是什么原因引起的,改如何优化?非常感谢。

解决方案 »

  1.   

    配置不一样?
    你看两个执行计划中,带没带CPU占用的时间或者啥的。
      

  2.   

    cpu和IO耗费都差不多,配置好的机器只是稍微多一点点,但两者的bytes就相差2倍左右了。机器名  cpu   I/O   Bytes
    A      40827  5     840
    B      46897  5     1456其中机器B配置不如A,但不是配置也不错。
      

  3.   

    查看一下oracle内核参数有没不一样的地方。
      

  4.   

    Oracle数据库文件导入的话,看看表的索引是不是不一样,表空间大小是否一样。
    索引多,需要更新的数据多,自然会慢的。
    表空间小,可能不断寻找可利用空间,也很耗时的