From 7051547e259b65115af762d9936a57b861c1fe8a Mon Sep 17 00:00:00 2001 From: pashko Date: Tue, 25 Nov 2025 11:28:08 +0800 Subject: [PATCH] Add posgresql_diagnostic/diagnositc.sql --- posgresql_diagnostic/diagnositc.sql | 57 +++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 posgresql_diagnostic/diagnositc.sql diff --git a/posgresql_diagnostic/diagnositc.sql b/posgresql_diagnostic/diagnositc.sql new file mode 100644 index 0000000..27c0d9a --- /dev/null +++ b/posgresql_diagnostic/diagnositc.sql @@ -0,0 +1,57 @@ +-- Текущие активные подключения +SELECT + pid, + datname, + usename, + application_name, + client_addr, + state, + query, + query_start, + state_change +FROM pg_stat_activity +WHERE state = 'active' +ORDER BY query_start; + +-- Количество подключений по клиентам +SELECT + client_addr, + application_name, + count(*) as connection_count, + max(state) as state +FROM pg_stat_activity +GROUP BY client_addr, application_name +ORDER BY connection_count DESC; + +-- Долго выполняющиеся запросы +SELECT + pid, + now() - query_start as duration, + query, + state +FROM pg_stat_activity +WHERE state = 'active' +AND now() - query_start > interval '30 seconds' +ORDER BY duration DESC; + + +-- Лимиты подключений +SHOW max_connections; +SHOW superuser_reserved_connections; + +-- Таймауты +SHOW idle_in_transaction_session_timeout; +SHOW tcp_keepalives_idle; +SHOW tcp_keepalives_interval; + + +-- Проверим, что делает DBeaver +SELECT + pid, + query, + state, + now() - query_start as running_for +FROM pg_stat_activity +WHERE application_name LIKE '%DBeaver%' +AND state = 'active'; +