Skip to content

Instantly share code, notes, and snippets.

@romuald
Last active July 30, 2024 12:43
Show Gist options
  • Save romuald/f73aa7af4d32a4fe8866ca377d623d13 to your computer and use it in GitHub Desktop.
Save romuald/f73aa7af4d32a4fe8866ca377d623d13 to your computer and use it in GitHub Desktop.
Show PostgreSQL current (running) process list;
SELECT user, pid, client_addr, waiting, query, query_start, NOW() - query_start AS elapsed
FROM pg_stat_activity
WHERE query != '<IDLE>'
-- AND EXTRACT(EPOCH FROM (NOW() - query_start)) > 1
ORDER BY elapsed DESC;
@freaker2k7
Copy link

I needed to remove , waiting in PG 14 to make it work because that column wasn't found.

@mrmuminov
Copy link

I also don’t have a “waiting” in 13.4 interpretation

@oduvan
Copy link

oduvan commented Jan 19, 2022

SELECT user, pid, client_addr, query, query_start, NOW() - query_start AS elapsed
FROM pg_stat_activity
WHERE query != ''
-- AND EXTRACT(EPOCH FROM (NOW() - query_start)) > 1
ORDER BY elapsed DESC;

@oduvan
Copy link

oduvan commented Jan 19, 2022

I add the update, since the result is visible in google

@jackton1
Copy link

Improve formatting

SELECT user, pid, client_addr, query, query_start, NOW() - query_start AS elapsed
FROM pg_stat_activity
WHERE query != ''
-- AND EXTRACT(EPOCH FROM (NOW() - query_start)) > 1
ORDER BY elapsed DESC;

@josuamarcelc
Copy link

josuamarcelc commented Jul 30, 2024

you may try this

1. Simple Command

select * from pg_stat_activity;

2. Second Option

SELECT user, pid, client_addr, query, query_start, NOW() - query_start AS elapsed
FROM pg_stat_activity
WHERE query != '<IDLE>'
-- AND EXTRACT(EPOCH FROM (NOW() - query_start)) > 1
ORDER BY elapsed DESC;

3. Third Option

SELECT pid, age(clock_timestamp(), query_start), usename, query 
FROM pg_stat_activity 
WHERE query != '<IDLE>' AND query NOT ILIKE '%pg_stat_activity%' 
ORDER BY query_start desc;

4. Finding Long Processing Time / Stuck Queries

SELECT pid, now() - pg_stat_activity.query_start AS duration, query, state
FROM pg_stat_activity
WHERE (now() - pg_stat_activity.query_start) > interval '5 minutes';

6. Cancelling Long Running Queries

SELECT pg_cancel_backend(pid);

7. Kill Process ID / Terminate Stuck Queries

SELECT pg_terminate_backend(pid);

Ref: SHOW PROCESSLIST IN POSTGRESQL

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment