各种数据库查询运行中的sql以及终止进程

本文详细介绍了如何在MySQL和PostgreSQL中查询正在运行的SQL语句,并提供相应的命令行操作以终止这些进程。包括使用INFORMATION_SCHEMA和pg_stat_activity表进行查询,以及kill命令的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


查询各种数据源,查询运行中的sql以及终止进程总结

mysql

1、查询运行中的sql

(1)  SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST WHERE db='xx';

(2) show processlist;   

select concat('kill ',id ,';') FROM INFORMATION_SCHEMA.PROCESSLIST WHERE db='xx';

2、杀死进程

kill pId;

3、查询mysql活动事务的状态

SELECT * FROM information_schema.INNODB_TRX;

4、查看使用或者锁定的表

SHOW OPEN TABLES WHERE In_use > 0;

pg

1、查询正在执行中的sql

SELECT * FROM pg_stat_activity

where  state = 'active';

2、--最大连接数

show max_connections

3、杀死进程

SELECT pg_terminate_backend(pId)

FROM pg_stat_activity

WHERE state = 'active';

4、--杀死进程语句

SELECT 'select pg_terminate_backend('||pid||');' FROM pg_stat_activity

where state = 'active';

oracle

1、查询最大连接数,当前连接数

   SELECT 
    (SELECT value FROM v$parameter WHERE name = 'processes') AS max_connections,
    (SELECT COUNT(*) FROM v$session WHERE username IS NOT NULL) AS current_connections
FROM dual;

2、查询正在执行的sql
SELECT 
    s.sid, 
    s.serial#, 
    s.username, 
    s.status, 
    s.sql_id, 
    s.prev_sql_id, 
    q.sql_text, 
    s.program, 
    s.machine, 
    s.osuser, 
    s.logon_time
FROM 
    v$session s
LEFT JOIN 
    v$sql q 
ON 
    s.sql_id = q.sql_id
WHERE 
    s.status = 'ACTIVE' -- 只查询状态为活动的会话
    AND s.username IS NOT NULL -- 排除后台进程
ORDER BY 
    s.logon_time DESC;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱晒太阳的小老鼠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值