How to check Oracle database for long running queries

前端 未结 8 1733
半阙折子戏
半阙折子戏 2020-12-02 04:03

My application, which uses an Oracle database, is going slow or appears to have stopped completely.

How can find out which queries are most expensive, so I can inves

8条回答
  •  有刺的猬
    2020-12-02 04:47

    Step 1:Execute the query
    
    column username format 'a10'
    column osuser format 'a10'
    column module format 'a16'
    column program_name format 'a20'
    column program format 'a20'
    column machine format 'a20'
    column action format 'a20'
    column sid format '9999'
    column serial# format '99999'
    column spid format '99999'
    set linesize 200
    set pagesize 30
    select
    a.sid,a.serial#,a.username,a.osuser,c.start_time,
    b.spid,a.status,a.machine,
    a.action,a.module,a.program
    from
    v$session a, v$process b, v$transaction c,
    v$sqlarea s
    Where
    a.paddr = b.addr
    and a.saddr = c.ses_addr
    and a.sql_address = s.address (+)
    and to_date(c.start_time,'mm/dd/yy hh24:mi:ss') <= sysdate - (15/1440) -- running for 15 minutes
    order by c.start_time
    /   
    
    Step 2: desc v$session
    
    Step 3:select sid, serial#,SQL_ADDRESS, status,PREV_SQL_ADDR from v$session where sid='xxxx' //(enter the sid value)
    
    Step 4: select sql_text from v$sqltext where address='XXXXXXXX';
    
    Step 5: select piece, sql_text from v$sqltext where address='XXXXXX' order by piece;
    

提交回复
热议问题