Skip to content

Long Running SQL Commands and Queries

Audience: Data Users

Content Summary: This page details how to terminate long-running or hanging SQL commands or queries.

Query Overview

Below is a SQL Query, which contains instructions to help terminate long-running SQL commands or queries.

Note: This query excludes START_REPLICATION SLOT %.

Instructions

Use the inner select to determine if you have hanging queries, and replace pg_cancel_backend with pg_terminate_backend if they do not actually cancel. You can also change the interval if needed.

```sql
SELECT pg_cancel_backend(pid)
FROM (
SELECT
pid, now() - pg_stat_activity.query_start AS duration, query, state
FROM pg_stat_activity
WHERE (now() - pg_stat_activity.query_start) > interval '1 day'
AND query NOT LIKE 'START_REPLICATION SLOT %'
) long_pids;
```