IT정보사전

PostgreSQL 현재 실행중인 쿼리 확인 및 종료 본문

DataBase

PostgreSQL 현재 실행중인 쿼리 확인 및 종료

작은나무0530 2019. 2. 27. 16:51
728x90
반응형

안녕하세요~작은나무입니다.
DBMS중에 PostgreSQL에서 현재 실행중인 쿼리 확인 및 종료하는 방법에 대해 알아보겠습니다.

실행중인 쿼리 확인
pg_stat_activity 통계 정보를 이용하여 현재 실행중인 쿼리를 조회할 수 있습니다.

SELECT * FROM pg_stat_activity ORDER BY query_start;
SELECT * FROM pg_stat_activity WHERE datname = 'databasename'

실행중인 쿼리 취소
실행 결과는 true, false로 반환합니다.
pid정보는 위의 쿼리에서 확인된 pg_stat_activity.pid값을 입력(버전에 따라 pg_stat_activity.procpid일 경우도 있습니다.)

SELECT pg_cancel_backend(pid int);

1분이상 실행중인 쿼리 확인
위의 실행중인 쿼리를 응용하면 아래와 같은 정보도 확인 할 수 있습니다.

SELECT current_timestamp - query_start AS runtime, datname, usename, query FROM pg_stat_activity WHERE state = 'active' AND current_timestamp - query_start > '1 min' ORDER BY 1 DESC;

pg_stat_activity정보
PostgreSQL 9.4 기준 정보입니다.

 열

유형 

설명 

 datid

oid 

 데이터베이스 OID 

 datname

name 

 데이터베이스 이름 

 pid

integer 

 프로세스 ID 

 usesysid

oid 

 사용자 고유번호 

 usename

name 

 사용자 이름

application_name

text 

 응용프로그램 이름

 client_addr

inet 

 접속 IP

 client_hostname

text 

 접속한 호스트 이름

 client_port

integer

 접속한 TCP 포트

 backend_start

timestamp with time zone

 서버 접속 시간

 xact_start

timestamp with time zone

 트랜잭션이 시작된 시간

 query_start

timestamp with time zone

 쿼리 시작 시간

 state_change

timestamp with time zone

 state의 마지막 수정 시간

 wating

boolean

 대기중인 경우 true

 state

text

 하단 참조

 query

text

 state값이 active일때만 현재 실행중인 쿼리 이 외에는 마지막 실행된 쿼리


state정보는 아래와 같습니다.

active : 쿼리 실행 중

idle : 새로운 명령을 기다리는 중

idle in transaction : 트랜잭션은 있지만 현재 실행중인 쿼리 없음

idle in transaction (aborted) : idle in transaction 비슷하지만 트랜잭션에 오류가 있음

fastpath function call : 함수 실행 중

disabled : track_activities 무효

728x90
반응형
그리드형
Comments