瀚高数据库查看正在执行的SQL
1. 使用 pg_stat_activity 视图(最常用)
1 2 3 4 5 6 7 8 9 10 11 |
SELECT pid, now() - query_start AS 持续时间, query, state FROM pg_stat_activity WHERE state = 'active' ORDER BY 持续时间 DESC; |
2. 查看所有连接(包括空闲连接)
1 |
SELECT * FROM pg_stat_activity; |
3. 查看长时间运行的查询
1 2 3 4 5 6 7 8 9 10 |
SELECT pid, now() - query_start AS 持续时间, query, state FROM pg_stat_activity WHERE state = 'active' ORDER BY 持续时间 DESC; |
4. 瀚高数据库特有的扩展命令
瀚高可能还提供了一些扩展命令:
1 2 3 4 5 |
-- 查看锁信息 SELECT * FROM pg_locks; -- 查看等待事件 SELECT * FROM pg_stat_activity WHERE wait_event IS NOT NULL; |
与MySQL SHOW PROCESSLIST的主要区别
-
瀚高/PostgreSQL使用pg_stat_activity视图而不是SHOW PROCESSLIST命令
-
进程ID列名为pid而不是Id
-
状态信息更详细,包括”active”, “idle”, “idle in transaction”等
-
提供更多元数据如客户端IP、应用名称等
终止进程的方法
如果需要终止长时间运行的查询,可以使用:
1 2 3 4 |
-- 终止特定进程 SELECT pg_terminate_backend(pid); -- 例如: 终止pid为12345的进程 SELECT pg_terminate_backend(12345); |