Checking which queries are active or blocked
Here, we will show you how to know whether a query is actually running or waiting for another query.
Getting ready
If you are logged in as superuser you will have full access to monitoring information.
How to do it...
On PostgreSQL 9.6 or newer you can run the following query:
SELECT datname , usename , wait_event_type , wait_event , query FROM pg_stat_activity WHERE wait_event IS NOT NULL;
The output will look like the following:
-[ RECORD 1 ]---+----------------- datname | postgres usename | gianni wait_event_type | Lock wait_event | relation query | select * from t;
If your PostgreSQL installation is older than 9.6, you should run this query instead:
SELECT datname, usename, query FROM pg_stat_activity WHERE waiting = true;
You will get a list of queries that are waiting on other backends
How it works...
In 9.6 or newer, the pg_stat_activity
system view includes the wait_event_type
and wait_event
columns, which are set respectively...