반응형
Postgre의 현재 연결 수를 가져오는 오른쪽 쿼리SQL 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.
상태별 모든 사후 세션 집계(유휴 세션 수, 수행 중인 세션 수...)
select state, count(*) from pg_stat_activity where pid <> pg_backend_pid() group by 1 order by 1;
소스 코드를 보면 pg_stat_database 쿼리는 모든 사용자에 대해 현재 데이터베이스에 대한 연결 수를 제공하는 것 같습니다.반면에 pg_stat_activity 쿼리는 쿼리 사용자에 대해서만 현재 데이터베이스에 대한 연결 수를 제공합니다.
언급URL : https://stackoverflow.com/questions/5267715/right-query-to-get-the-current-number-of-connections-in-a-postgresql-db
반응형
'programing' 카테고리의 다른 글
| 여러 속성을 가진 CSS 전환 속기? (0) | 2023.05.29 |
|---|---|
| 문자열에서 숫자 0-9만 반환 (0) | 2023.05.29 |
| 기록이 있는 SVN 저장소를 새 Git 저장소로 마이그레이션하려면 어떻게 해야 합니까? (0) | 2023.05.29 |
| 원에 불과한 사용자 정의 UI뷰 그리는 방법 - 아이폰 앱 (0) | 2023.05.29 |
| Node.js에서 module.exports를 여러 개 선언합니다. (0) | 2023.05.29 |