PostgreSQL 通过 PID 查找具体表名
在 PostgreSQL 中,可以通过查询系统表 pg_stat_activity 来查找具体表名。该表包含了所有当前活动的后台进程信息,包括进程 ID (PID)、当前正在执行的 SQL 语句、客户端地址等。
要查找特定 PID 对应的 SQL 语句,可以使用以下查询语句:
SELECT query, query_start, usename, datname
FROM pg_stat_activity
WHERE pid = <pid>;
其中,<pid> 是要查找的进程 ID。该查询语句将返回该进程正在执行的 SQL 语句、开始执行时间、客户端用户名以及正在访问的数据库名。
如果想查找特定 PID 对应的表名,可以在查询语句中加入相关的条件:
SELECT relname
FROM pg_stat_activity, pg_class
WHERE pg_stat_activity.current_query LIKE '%' || pg_class.relname || '%'
AND pg_stat_activity.pid = <pid>;
其中,current_query 列包含了当前正在执行的 SQL 语句。通过将其与关系表名进行比较,可以找到正在操作的表。该查询语句将返回特定进程 ID 正在访问的表名。
原文地址: https://www.cveoy.top/t/topic/lK5g 著作权归作者所有。请勿转载和采集!