Linux下运行Oracle10g速度很慢。发现ORACLE进程占用SYS高过USER,而在其他兄弟单位进行的状况中,却是ORACLE一直使用USER进程。而且USER进程远高于SYS进程,即$us 远高于 %sy
IBM x3650 M3的服务器,8G内存,CentOS5.3的系统上,运行Oracle10g 10.2.0.4 数据库,出现数据库运行很慢情况,开启应用程序发现很慢
发现可能是操作系统进程的问题,就是当开启应用是,能过 top -M 命令 发现CPU IDLE很低,而SYS占用都比USER占用能得高,而且事乎sys的占用%sy
最高只达到6.3%,而用户占用%us几乎很低,几乎为0,我在台式机上安装相同测试机的环境,发现都是%us 占用比%sy 高,而且这样子的话,系统运行
的速度就正常。这个可能是什么原因呢,望高手指点一下 附上我top -M 图vmstat运行的图

解决方案 »

  1.   

    --查看是否有占用cpu相对过多的oracle进程,记录pid
    --使用如下语句查看进程正在执行的SQL
    SELECT /*+ ORDERED */
     sql_text
      FROM v$sqltext a
     WHERE (a.hash_value, a.address) IN
           (SELECT DECODE(sql_hash_value, 0, prev_hash_value, sql_hash_value),
                   DECODE(sql_hash_value, 0, prev_sql_addr, sql_address)
              FROM v$session b
             WHERE b.paddr =
                   (SELECT addr FROM v$process c WHERE c.spid = '&pid'))
     ORDER BY piece ASC;