Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
45 lines (43 loc) · 1.23 KB

File metadata and controls

45 lines (43 loc) · 1.23 KB
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
--
-- Author: Hari Sekhon
-- Date: 2020-08-06 00:00:35 +0100 (Thu, 06 Aug 2020)
--
-- vim:ts=4:sts=4:sw=4:et:filetype=sql
--
-- https://github.com/HariSekhon/SQL-scripts
--
-- License: see accompanying Hari Sekhon LICENSE file
--
-- If you're using my code you're welcome to connect with me on LinkedIn and optionally send me feedback to help steer this or other code I publish
--
-- https://www.linkedin.com/in/HariSekhon
--
-- Kills idle PostgreSQL sessions that haven't been used in > 15 minutes
--
-- Requires PostgreSQL >= 9.2
--
-- Tested on PostgreSQL 9.2+, 10.x, 11.x, 12.x, 13.0
SELECT
pg_terminate_backend(pid)
FROM
pg_stat_activity
WHERE
-- don't kill yourself
pid <> pg_backend_pid()
-- AND
-- don't kill your admin tools
--application_name !~ '(?:psql)|(?:pgAdmin.+)'
-- AND
--usename not in ('postgres')
AND
query in ('')
AND
state in ('idle', 'idle in transaction', 'idle in transaction (aborted)', 'disabled')
AND
--state_change < current_timestamp - INTERVAL '15' MINUTE;
(
(current_timestamp - query_start) > interval '15 minutes'
OR
(query_start IS NULL AND (current_timestamp - backend_start) > interval '15 minutes')
)
;
Morty Proxy This is a proxified and sanitized view of the page, visit original site.