oracle查詢和終止正在執行的儲存過程

2021-10-09 15:50:17 字數 1345 閱讀 6366

1.查詢正在執行的儲存過程

select  name  from v$db_object_cache where type like '%proce%' and locks >0 and pins >0;    

2.找到對應儲存過程的sid

select sid from v$access o where o.object like 'sp_s_report_mobile%'   (引數是儲存過程名稱)

3.根據sid找到對應的serial#

select sid,serial# from v$session a where a.sid=sid

4.終止執行儲存過程

alter system kill session 'sid,serial#'  (例如:alter system kill session '1061,25354')

查阻塞select l.session_id sid, s.serial#,a.sql_text,l.locked_mode,l.oracle_username,

s.user#,l.os_user_name,s.machine,s.terminal,a.action

from v$sqlarea a,v$session s, v$locked_object l

where l.session_id = s.sid and s.prev_sql_addr = a.address;

--找出執行慢的語句 前20條

select *

from  (select  to_char(a.sql_fulltext) sql_text1 ,module,sql_id,

disk_reads / decode (executions, 0, 1, executions) as tt

from v$sqlarea a

where length(a.sql_fulltext)<4000

order by tt desc)

where rownum <= 20

檢視表空間大小

select a.tablespace_name,total,free,total-free used from

(select tablespace_name,sum(bytes)/1024/1024 total from dba_data_files

group by tablespace_name) a,

(select tablespace_name,sum(bytes)/1024/1024 free from dba_free_space

group by tablespace_name) b

where a.tablespace_name=b.tablespace_name;

終止正在執行的執行緒

很多人都說使用abort方法來終止執行緒,其實這種做法並不可取!如果你的執行緒正在操作臨界資源,很有可能會造成資源沒有正確釋放而出現死鎖問題。正確的做法應該是使用標記來終止執行緒的執行。下面我們來看具體的操作步驟。首先定義乙個 停止 訊號變數 view plaincopy to clipboardp...

查詢Oracle正在執行的sql

查詢oracle正在執行的sql語句及執行該語句的使用者 select b.sid oracleid,b.username 登入oracle使用者名稱,b.serial spid 作業系統id,paddr,sql text 正在執行的sql,b.machine 計算機名 from v process...

查詢Oracle正在執行和執行過的SQL語句

正在執行的 select a.username,a.sid,b.sql text,b.sql fulltext from v session a,v sqlarea b where a.sql address b.address 執行過的 select b.sql text,b.first load...