KeiStory

PostgreSQL 실행 중인 쿼리 조회 및 실행 취소

 

 

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

 

28.2. The Cumulative Statistics System

28.2. The Cumulative Statistics System # 28.2.1. Statistics Collection Configuration 28.2.2. Viewing Statistics 28.2.3. pg_stat_activity 28.2.4. pg_stat_replication 28.2.5. pg_stat_replication_slots 28.2.6. pg_stat_wal_receiver …

www.postgresql.org

https://www.postgresql.kr/docs/9.3/monitoring-stats.html

 

통계 수집기

PostgreSQL 통계 수집기 statistics collector는 서버 운영 상태에 대한 정보를 수집하거나 보고하기 위한 작업을 하는 백그라운드 시스템이다. 현재, 이 수집기는 테이블이나 인덱스의 디스크 블록 단위

www.postgresql.kr

 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band