PostgreSQL中是否有一个命令来选择到给定数据库的活动连接?
psql声明我不能删除我的数据库之一,因为有到它的活动连接,所以我想看看连接是什么(以及从哪些机器)
psql
哦,我刚刚在PostgreSQL论坛上发现了这个命令:
SELECT * FROM pg_stat_activity;
下面将给出postgres DB-中的活动连接/查询
SELECT pid ,datname ,usename ,application_name ,client_hostname ,client_port ,backend_start ,query_start ,query ,state FROM pg_stat_activity WHERE state = 'active';
你可以使用'idle'而不是active来获取已经执行的连接/查询。
SELECT * FROM pg_stat_activity WHERE datname = 'dbname' and state = 'active';
由于pg_stat_activity包含所有数据库的连接统计信息,无论是idle还是active,数据库名称和连接状态都应该包含在查询中以获得所需的输出。
pg_stat_activity
idle
active
SELECT * FROM pg_stat_activity WHERE state = 'active';
select * from pg_stat_activity where state = 'active' and datname = 'REPLACE_DB_NAME_HERE';
如果您想使用PgAdmin(对我来说,它不仅仅是方便),您可以执行这些简单的步骤。如果有帮助,我很高兴