正在執行的SQL

2021-08-09 13:08:50 字數 2911 閱讀 3122

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 ...