1. 先通过top命令查看产用资源较多的spid号
2.查询当前耗时的会话ID,用户名,sqlID等: select sid,serial#,machine,username,program,sql_hash_value,sql_id, to_char(logon_time,‘yyyy/mm/dd hh24:mi:ss‘) as login_time from v$session where paddr in (select addr from v$process where spid in (‘5648612‘,‘256523‘));
3. 如果上一步sql_id或者 hash_value不为空,则可用v$sqlarea查出当前正在使用的sql select sql_text from v$sqltext_with_newlines where hash_value = &hash_value order by piece;
select * from v$sql where sql_id=‘‘
---CSDN 网友提供的----
SELECTsql_text FROMv$sqltext a WHERE(a.hash_value, a.address)IN (SELECTDECODE(sql_hash_value,0, prev_hash_value, sql_hash_value), DECODE(sql_hash_value,0, prev_sql_addr, sql_address) FROMv$session b WHEREb.paddr=(SELECTaddrFROMv$process cWHEREc.spid=‘&pid‘)) ORDERBYpieceASC
原文:http://www.cnblogs.com/zwl715/p/3816490.html