Campaign Classic v7 - db 모듈 pg_stat_statements의 용도 및 사용
DB(데이터베이스) 모듈의 목적 및 사용에 대해 알아보기 pg_stat_statements
Adobe Campaign Classic v7에서.
설명 description
환경
Adobe Campaign Classic v7(ACC v7)
문제/증상
-
db 모듈이란?
pg_stat_statements
? -
클라이언트가 활성화하도록 요청한 이유는 무엇입니까?
-
활성화 방법
해결 방법 resolution
-
pg_stat_statements 모듈은 서버에서 실행되는 모든 SQL 문의 실행 통계를 추적하는 수단을 제공합니다.
모듈은 를 추가하여 로드해야 합니다.
pg_stat_statements
끝shared_preload_libraries
위치:postgresql.conf
추가 공유 메모리가 필요하기 때문입니다.즉, 모듈을 추가하거나 제거하려면 서버를 다시 시작해야 합니다.
링크 https://www.postgresql.org/docs/9.4/pgstatstatements.html
-
이 테이블에서 시간이 오래 걸리는 쿼리를 모니터링할 수 있는 보기 유형 스키마를 구현하려면
이렇게 하면 클라이언트가 이러한 기능을 조정하고 성능을 최적화할 수 있습니다.
이 확장은 쿼리 실행에 대한 지표(가장 자주 실행되는 쿼리와 각 쿼리에 걸리는 시간)를 제공합니다.
-
pg_stat_statements
-
Postgres 버전에 대한 공식 PostgreSQL 구성 패키지가 설치되어 있는지 확인합니다.
code language-none $ dpkg -l | grep postgres postgresql-contrib-9.3
설치되지 않은 경우 설치합니다.
code language-none $ apt-get install postgresql-contrib-9.3
-
변경
postgresql.conf
시작할 때 모듈을 미리 로드합니다.기본값:
shared_preload_libraries = ''
신규:
shared_preload_libraries = 'pg_stat_statements'
두 가지를 모두 사용하는 경우
pg_stat_statements
및auto_explain
, 사용 1개 녹화하고 쉼표로 구분합니다.code language-none shared_preload_libraries = 'auto_explain,pg_stat_statements'
-
모니터링할 데이터베이스에서 다음을 실행합니다.
CREATE
쿼리:에 대한 확장 생성이 필요하지 않음
auto_explain
, 에만 해당pg_stat_statements
.code language-none psql postgres=# \c mydatabase mydatabase=# CREATE EXTENSION pg_stat_statements;
-
의 맞춤화된 OPTIONS 섹션에서
postgresql.conf
를 클릭하고 줄을 추가합니다.code language-none pg_stat_statements.max = 5000 pg_stat_statements.track = all pg_stat_statements.save = on
-
postgresql 서비스를 다시 시작합니다.
예: 데이터베이스에서 비용이 가장 많이 드는 상위 5개의 쿼리를 가져옵니다.
code language-none SELECT query, calls, total_time, rows, 100.0*shared_blks_hit/nullif(shared_blks_hit+shared_blks_read,0) AS hit_percent from pg_stat_statements as s inner join pg_database as d on d.oid = s.dbid where d.datname = 'Database_Name' order by total_time desc limit 5;
-