1.PGSQL-查看sql正在運行的進程
SELECT datname,pid,state,query FROM pg_stat_activity where state='active'
SELECT procpid, START, now() - START AS lap, current_query FROM ( SELECT backendid, pg_stat_get_backend_pid (S.backendid) AS procpid, pg_stat_get_backend_activity_start (S.backendid) AS START, pg_stat_get_backend_activity (S.backendid) AS current_query FROM ( SELECT pg_stat_get_backend_idset () AS backendid ) AS S ) AS S WHERE current_query <> '<IDLE>'
ORDER BY lap DESC;
procpid:進程id
start:進程開始時間
lap:經過時間
current_query:執行中的sql
怎樣停止正在執行的sql
SELECT pg_cancel_backend(進程id);
或者用系統函數
kill -9 進程id;
2.查看表是否被鎖,解鎖表
select oid from pg_class where relname='m_ss_kjcx_tech_inovate_talent'
select pid from pg_locks where relation='4384913'
--如果查詢到了結果,表示該表被鎖 則需要釋放鎖定
select pg_cancel_backend(140650678843136)
通過命令:
=# select pg_cancel_backend(線程id);
來kill掉指定的SQL語句。(這個函數只能 kill Select 查詢,而updae,delete DML不生效)
使用可以kill 各種DML(SELECT,UPDATE,DELETE,DROP)操作=
=# select pg_terminate_backend(pid int)
-- PGSQL
select oid from pg_class where relname='m_ss_kjcx_tech_inovate_talent'
select pid from pg_locks where relation='4384913'
--如果查詢到了結果,表示該表被鎖 則需要釋放鎖定
select pg_cancel_backend(140650678843136) --- 來查看有哪些SQL正在執行。 waiting='t'
select pid,backend_start,application_name,query_start,waiting,state ,query from pg_stat_activity
where query <>''
order by query_start asc
通過命令: =# select pg_cancel_backend(線程id); 來kill掉指定的SQL語句。(這個函數只能 kill Select 查詢,而updae,delete DML不生效) 使用可以kill 各種DML(SELECT,UPDATE,DELETE,DROP)操作=
=# select pg_terminate_backend(pid int)