数据库服务器经常出现CPU占用率100%的情况,联入数据库的有40多个用户,主要在运行数据量比较大的报表时出现这个现象,怎么优化报表程序都难以改善

解决方案 »

  1.   

    作一个statspack或者awr报告,然后再分析,
    或者使用简单一点的方法,
    查找CPU占用率高的进程,然后使用如果下SQL取出正在
    执行的SQL,尽量优化之
    SELECT
     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;
      

  2.   

    小机吗?几核的?多MHZ?内存多少? CPU100%时 IO情况如何?   八成还是应用程序烂.