sql server
select [spid] = session_id, ecid, [database] = db_name(sp.dbid),
[user] = nt_username, [status] = er.status,
[wait] = wait_type,
[individual query] = substring(qt.text, er.statement_start_offset / 2, (case when er.statement_end_offset = - 1 then len(convert(nvarchar(max), qt.text))
* 2 else er.statement_end_offset end - er.statement_start_offset) / 2),
[parent query] = qt.text,
program = program_name, hostname,
nt_domain, start_time
from
sys.dm_exec_requests er inner join sys.sysprocesses sp on er.session_id = sp.spid
where session_id > 50 /* ignore system spids.*/ and session_id not in (@@spid);
-- 檢視誰阻塞誰
select a.spid as 被阻塞程序,a.cmd as 正在執行的操作,b.spid as 阻塞程序號,b.cmd as 阻塞程序正在執行的操作
from master..sysprocesses a,master..sysprocesses b
where a.blocked<>0 and a.blocked= b.spid
exec sp_who 'active'--檢視系統內所有的活動程序 blk不為0的為死鎖
exec sp_lock 60 --返回某個程序對資源的鎖定情況
select object_name(1504685104)--返回物件id對應的物件名
oracle
select b.sid oracleid,
b.username 登入oracle使用者名稱,
b.serial#,
spid 作業系統id,
paddr,
sql_text 正在執行的sql,
b.machine 計算機名
from v$process a, v$session b, v$sqlarea c
where a.addr = b.paddr
and b.sql_hash_value = c.hash_value
占用的pga大小
--查詢oracle正在執行的sql語句及執行該語句的使用者
select b.sid oracleid,
b.username 登入oracle使用者名稱,
b.serial#,
spid 作業系統id,
paddr,
sql_text 正在執行的sql,
b.machine 計算機名,
(select value / 1024 / 1024 mb
from v$session s, v$sesstat st, v$statname sn, v$process p
where st.sid = s.sid
and st.statistic# = sn.statistic#
and sn.name like 'session pga memory'
and p.addr = s.paddr and s.sid=b.sid and s.schema#=b.schema#)
from v$process a, v$session b, v$sqlarea c
where a.addr = b.paddr
and b.sql_hash_value = c.hash_value
and (b.sid,b.serial#) in
(select sid,serial#
from
(select server, s.username, osuser, name, value / 1024 / 1024 mb, s.sid, s.serial#, spid
from v$session s, v$sesstat st, v$statname sn, v$process p
where st.sid = s.sid
and st.statistic# = sn.statistic#
and sn.name like 'session pga memory'
and p.addr = s.paddr
order by value desc
)tmp
where rownum<=5
)
mysql
show processlist;
--或者:
select * from information_schema.`processlist` where info is not null;
pg:
-- 查詢正在執行的sql
select *from pg_stat_activity;
-- kill掉查詢或者更新語句
-- 對於查詢sql
select pg_cancel_backend(procpid);
-- 其他sql
select pg_terminate_backend(procpid);
postgreSQL 終止正在執行的SQL
雖然可以使用 kill 9 來強制刪除使用者程序,但是不建議這麼去做。因為 對於執行update的語句來說,kill掉程序,可能會導致postgres進入到recovery mode 而在recovery mode下,會鎖表,不允許鏈結資料庫。通常情況下 使用如下語句 select datname,...
查詢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
查詢 正在執行的sql select b.sid oracleid,b.username 登入oracle使用者名稱,b.serial spid 作業系統id,paddr,sql text 正在執行的sql,b.machine 計算機名 from v process a,v session b,v ...