人大金仓数据库慢查询排查
服务器登陆人大金仓
ksql test system
1. 查看该库所有会话(含空闲)
SELECT
pid,
datname,
usename,
client_addr,
state,
query_start,
query
FROM sys_stat_activity
WHERE datname = 'saas_hsfarm'
ORDER BY query_start DESC;
2. 只看 正在执行(active) 的查询(推荐)
SELECT
pid,
datname,
usename,
client_addr,
state,
current_timestamp - query_start AS runtime,
query
FROM sys_stat_activity
WHERE datname = 'saas_hsfarm'
AND state = 'active' -- 只查运行中
ORDER BY runtime DESC;
pid:进程 ID(杀任务用)
runtime:已运行时间
query:正在执行的 SQL
3. 查看锁等待 / 慢查询
-- 死锁/锁等待
SELECT pid, datname, usename, wait_event, query
FROM sys_stat_activity
WHERE datname = 'saas_hsfarm'
AND wait_event_type = 'Lock';
-- 运行超过 1 分钟的慢查询
SELECT
pid,
current_timestamp - query_start AS runtime,
query
FROM sys_stat_activity
WHERE datname = 'saas_hsfarm'
AND state = 'active'
AND query_start < now() - interval '1 min';
4. 杀掉指定查询任务(2 种方式)
4.1 终止指定 pid(推荐)
-- 先取消查询(温和)
SELECT sys_cancel_backend(12345); -- 12345 替换为实际pid
-- 强制终止会话(彻底断开)
SELECT sys_terminate_backend(12345);
sys_cancel_backend(pid):只取消当前 SQL,连接保留
sys_terminate_backend(pid):断开连接、回滚事务
4.2 批量终止该库所有活跃查询(慎用)
SELECT sys_terminate_backend(pid)
FROM sys_stat_activity
WHERE datname = 'saas_hsfarm'
AND state = 'active'
AND pid <> sys_backend_pid(); -- 排除自己

浙公网安备 33010602011771号