• Oracle 11g中查询CPU占有率高的SQL


    oracle版本:oracle11g

    背景:今天在Linux中的oracle服务上,运用top命令发现许多进程的CPU占有率是100%。

    操作步骤:

    以进程PID:7851为例

    执行以下语句:

    方法一:

    (1)通过PID,查得相对应的系统进程对应的session id

             select sid from v$session where paddr in (select addr from v$process where spid=7851

        得到SID:206

    (2)根据所得的会话ID查得sql地址和hash

        select sql_address,sql_hash_value from v$session where sid=206

             得到:SQL_ADDRESS:6EC554F4      SQL_HASH_VALUE:3141392848

    (3)根据sql hash值查得sql语句

        select sql_text from v$sqltext where hash_value=3141392848

       得到SQL语句:INSERT INTO TEST SELECT * FROM SYS.DBA_OBJECTS      此SQL语句就是此进程CPU占有率过高的语句了。

    方法二:

    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 = 7851))
    ORDER BY piece ASC

    通过此SQL语句可以直接得出:

    INSERT INTO TEST SELECT * FROM SYS.DBA_OBJECTS      此SQL语句就是此进程CPU占有率过高的语句了。

  • 相关阅读:
    团队第二次冲刺第六天
    团队第二次冲刺第五天
    [COCI 2017-2018-1]
    IOI2015day1. boxes
    IOI2015day2. horses
    BZOJ#4898. [Apio2017]商旅
    BZOJ#3267. KC采花
    IOI2016Day2. Messy
    IOI2016Day2. Paint
    BZOJ#1717:[Usaco2006 Dec]Milk Patterns 产奶的模式(后缀数组+单调队列)
  • 原文地址:https://www.cnblogs.com/xiangxiushu/p/13613600.html
Copyright © 2020-2023  润新知