013.PGSQL-查看sql正在运行的进程、查看表是否被锁、解锁表
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)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示