根據SQL_ID查詢並殺會話


Oracle 根據SQL_ID查詢並殺會話,清空執行計划緩沖池
2018年09月06日 10:31:40 小學生湯米 閱讀數:473
1. 查詢最近五分鍾內最高頻次SQL,查看event

select t.SQL_OPNAME,t.SQL_ID,count(*) from v$active_session_history t where t.SAMPLE_TIME>to_timestamp('20180906-09:55:00','YYYYMMDD-hh24:mi:ss') and t.SESSION_TYPE='FOREGROUND'
group by t.SQL_OPNAME,t.SQL_ID order by count(*) desc;

2、 根據SQL 查詢到操作用戶

select s.username from v$active_session_history t,dba_users s where t.USER_ID=s.user_id and t.SQL_ID='0nx7fbv1w5xg2';

 

3、查詢並獲取當前sql的殺會話語句

select 'alter system kill session '''|| t.SID||','||t.SERIAL#||''';' from v$session t where t.SQL_ID='0nx7fbv1w5xg2';

 

4、查詢並獲取當前會話的執行計划清空過程語句

select SQL_TEXT,sql_id, address, hash_value, executions, loads, parse_calls, invalidations
from v$sqlarea where sql_id='0nx7fbv1w5xg2';

call sys.dbms_shared_pool.purge('0000000816530A98,3284334050','c');


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM