반응형
PostgreSQL DB에서 현재 연결 수를 가져 오는 올바른 쿼리
다음 중 어느 것이 더 정확합니까?
select numbackends from pg_stat_database;
select count(*) from pg_stat_activity;
이 두 가지 요구 사항은 동일하지 않습니다. 첫 번째 버전과 동등한 버전은 다음과 같습니다.
SELECT sum(numbackends) FROM pg_stat_database;
이 경우 계산 할 행 수가 적기 때문에 두 번째 버전보다 약간 빠를 것으로 예상됩니다. 그러나 차이를 측정 할 수 없을 것입니다.
두 쿼리 모두 정확히 동일한 데이터를 기반으로하므로 동일하게 정확합니다.
다음 쿼리는 매우 유용합니다
select * from
(select count(*) used from pg_stat_activity) q1,
(select setting::int res_for_super from pg_settings where name=$$superuser_reserved_connections$$) q2,
(select setting::int max_conn from pg_settings where name=$$max_connections$$) q3;
그들은 분명히 다른 결과를 줄 수 있습니다. 더 좋은 것은
select count(*) from pg_stat_activity;
WAL 발신자 프로세스에 대한 연결이 포함되어 있기 때문입니다.이 프로세스는 일반 연결로 취급되고에 반영됩니다 max_connections
.
TCP 연결 수가 도움이됩니다. 특정 데이터베이스 용이 아님을 기억하십시오
netstat -a -n | find /c "127.0.0.1:13306"
소스 코드를 보면 pg_stat_database 쿼리가 모든 사용자의 현재 데이터베이스에 대한 연결 수를 제공하는 것처럼 보입니다. 반면, pg_stat_activity 조회는 조회 사용자에게만 현재 데이터베이스에 대한 연결 수를 제공합니다.
반응형
'Programing' 카테고리의 다른 글
Java LinkedHashMap은 첫 번째 또는 마지막 항목을 얻습니다. (0) | 2020.07.14 |
---|---|
C #에서 ToUpper ()와 ToUpperInvariant ()의 차이점은 무엇입니까? (0) | 2020.07.14 |
파이썬의 목적 __repr__ (0) | 2020.07.14 |
인터페이스를 구현하는 추상 클래스가 왜 인터페이스 메소드 중 하나의 선언 / 구현을 놓칠 수 있습니까? (0) | 2020.07.14 |
R에서 키 누르기를 기다리는 방법? (0) | 2020.07.14 |