pg_stat_activity는 현재 연결된 모든 세션의 정보를 담고 있으며,
여기에는 실행 중인 쿼리에 대한 정보도 포함되어 있습니다.
실행 중인 쿼리 조회 및 실행 취소하는 방법을 알아봅니다.
* 샐행중인 쿼리 조회하기
-- 기본쿼리
SELECT pid,
usename AS username,
datname AS database_name,
state,
query,
query_start
FROM pg_stat_activity;
-- 시간순
SELECT * FROM pg_stat_activity ORDER BY query_start ASC;
-- 수행시간 포함
SELECT
current_timestamp - query_start AS runtime, -- 수행시간
datname, usename, query
FROM pg_stat_activity
WHERE state = 'active' ORDER BY 1 DESC;
pid(프로세스 ID)
username(사용자 이름)
database_name(데이터베이스 이름)
state(상태)
query(실행 중인 쿼리)
query_start(쿼리 시작 시간)
* 실행중인 쿼리 중 실행 취소하기
위 실해중인 쿼리 조회 결과의 pid (pg_stat_activity.pid) 값 기준으로 실행을 취소합니다.
-- 기본문법
SELECT pg_cancel_backend(pid int);
-- 예시
SELECT pg_cancel_backend(12345);
-- 10분 이상 실행 중인 모든 쿼리 취소
SELECT pg_cancel_backend(pid)
FROM pg_stat_activity
WHERE state = 'active'
AND NOW() - query_start > INTERVAL '10 minutes';
참고
https://www.postgresql.org/docs/current/monitoring-stats.html#MONITORING-PG-STAT-ACTIVITY-VIEW
https://www.postgresql.kr/docs/9.3/monitoring-stats.html
PostgreSQL 모니터링을 위한 쿼리문 모음 (0) | 2024.12.01 |
---|---|
PostgreSQL 파티션 (partition) 테이블 만들기 (0) | 2024.11.17 |
Oracle ORA-65096: 공통 사용자 또는 롤 이름이 부적합 합니다 에러 (0) | 2024.11.07 |
PostgreSQL 데이터 앞뒤 공백 제거하기 (0) | 2024.11.06 |
PostgreSQL 시간 데이터 처리하기 (날짜 데이터, 날짜 함수) (0) | 2024.10.26 |