느 린 sql 찾기 3: pgstat_activity

pg_stat_activity 는 postgrsql 인 스 턴 스 가 유지 하 는 프로 세 스 와 관련 된 보기 로 실시 간 으로 변 합 니 다.그래서 pg 에서stat_activity 에서 느 린 sql 과 같은 문 구 를 가 져 오 려 면 정시 조회 가 필요 합 니 다. 예 를 들 어 zabbix 로 설 정 된 정시 탐지 등 입 니 다.
select 'select pg_cancel_backend('|| a0.pid || ');' as cancel_pid,
       'select pg_terminate_backend('|| a0.pid || ');' as terminate_pid,
       xact_start,round(extract(epoch FROM (now()-xact_start))::numeric,1) as xact_second,
       query_start,round(extract(epoch FROM (now()-query_start))::numeric,1) as query_second,
       datname, pid, usename, application_name, client_addr, client_port, 
       xact_start, query_start, 
       state_change,wait_event_type,wait_event, state, backend_xid, backend_xmin, query
  from pg_stat_activity a0
 where 1=1  
   and a0.state<>'idle'
   and (a0.backend_xid is not null or a0.backend_xmin is not null) 
 order by now()-xact_start; 


포인트 설명 이 필요 합 니 다: now () - xactstart 는 현재 실행 시간 까지 사 무 를 말 합 니 다.now() - query_start 는 query 가 현재 실행 중인 시간 을 말 합 니 다.
참고:http://postgres.cn/docs/9.6/monitoring-stats.html#PG-STAT-ACTIVITY-VIEW

좋은 웹페이지 즐겨찾기