AdvancedPerformance & Indexes

Connection pooling and pg_stat_activity

The query

SQL
-- Check active connections
SELECT
  pid,
  usename,
  application_name,
  client_addr,
  state,
  query_start,
  NOW() - query_start AS query_duration,
  LEFT(query, 100) AS query_preview
FROM pg_stat_activity
WHERE state != 'idle'
  AND pid != PG_BACKEND_PID()
ORDER BY query_duration DESC;

-- Kill a slow query
SELECT PG_TERMINATE_BACKEND(pid)
FROM pg_stat_activity
WHERE pid = 12345;
Tested against PostgreSQL 16

Note

Monitor slow queries with pg_stat_activity. PG_TERMINATE_BACKEND() kills a connection. Use carefully!