※ PostgreSQL: Lock check query.
안녕하세요. 듀스트림입니다.
운영용 쿼리에 대한 문의가 많아서 하나씩 올려보겠습니다.
이번 포스팅은 테이블에 걸린 락과 락, 홀더를 확인 할 수 있는 쿼리입니다.
1. 테이블 락 체크
테이블에 걸려있는 락을 확인할 수 있는 쿼리입니다.
SELECT t.relname,
l.locktype,
page,
virtualtransaction,
pid,
mode,
granted
FROM pg_locks l,
pg_stat_all_tables t
WHERE l.relation = t.relid
ORDER BY relation ASC;
2. 락, 블로킹 세션(홀더) 체크
대기 중인 락과 블로킹 세션을 확인할 수 있는 쿼리입니다.
select
pid,
wait_event_type||': '||wait_event wait,
pg_blocking_pids(pid) holder,
query
from pg_stat_activity
where wait_event_type = 'Lock';
+ \watch [interval] 명령으로 설정된 인터벌 타임에 따라 쿼리를 반복 실행하여 모니터링할 수 있습니다.
select
pid,
wait_event_type||': '||wait_event wait,
pg_blocking_pids(pid) holder,
query
from pg_stat_activity
where wait_event_type = 'Lock'; \watch 3 -- 3초마다 해당 쿼리 실행
그럼 오늘은 이만~
다음 포스팅도 기대해주세요 :)
'PostgreSQL' 카테고리의 다른 글
PostgreSQL: 옵티마이저(플래너) (0) | 2025.01.14 |
---|---|
PostgreSQL: 바인드 변수 실행 계획 최적화 (0) | 2025.01.10 |
PostgreSQL: PG ↔ Oracle 이관 시 메타데이터 정합성 체크 쿼리 (0) | 2025.01.05 |
PostgreSQL: PG ↔ Oracle 이관 시 데이터 정합성 체크 방법 (0) | 2025.01.04 |
PostgreSQL: Patroni로 고가용성(HA) 구성 방법 (0) | 2024.12.31 |