日期:2014-05-16  浏览次数:20401 次

oracle 性能问题分析方法4
适用使用linux命令
1 在linux上执行
top -d 1 -u oracle ,进入后按F,然后选k以cpu使用率排序 ,查看当前cpu使用率高的进程ID
不同linux可能具体命令不同,主要是找到占用cpu比较高的进程.

2 分析正在执行的sql
12345表示进程id
SQL> SELECT sql_text
  FROM v$sqltext sqltext
WHERE (sqltext.hash_value, sqltext.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 sess
             WHERE sess.paddr = (SELECT addr
                                FROM v$process proc
                               WHERE proc.spid = 12345 ))
order by piece;