the스포츠 토토
모듈은 실행할 필요없이 느린 문장의 실행 계획을 자동으로 로깅 할 수있는 수단을 제공합니다설명손으로. 이것은 대규모 응용 프로그램에서 최적화되지 않은 쿼리를 추적하는 데 특히 도움이됩니다.
모듈은 SQL 액세스 가능 함수를 제공하지 않습니다. 사용하려면 서버에로드하십시오. 당신은 그것을 개별 세션에로드 할 수 있습니다 :
로드 '스포츠 토토';
10174_10287스포츠 토토
insession_preload_libraries또는shared_preload_librariesinpostgresql.conf
. 그런 다음 언제 발생하든 예기치 않게 느린 쿼리를 추적 할 수 있습니다. 물론 그에 대한 오버 헤드 가격이 있습니다.
동작을 제어하는 몇 가지 구성 매개 변수가 있습니다.스포츠 토토
. 기본 동작은 아무것도하지 않는 것이므로 최소한 설정해야합니다스포츠 토토.log_min_duration
결과가 원하는 경우
스포츠 토토.log_min_duration
(정수
)스포츠 토토.log_min_duration
는 최소 명령문 실행 시간 (밀리 초)이므로 명세서의 계획이 기록되게됩니다. 이것을 제로 로그로 설정하면 모든 계획이 있습니다. 마이너스 (기본값)는 계획의 로깅을 비활성화합니다. 예를 들어,로 설정하면250ms
그러면 250ms 이상 실행되는 모든 진술이 기록됩니다. 수퍼 유저만이 설정을 변경할 수 있습니다.
스포츠 토토.log_analyze
(부울
)스포츠 토토.log_analyze
원인분석
그냥보다는 출력설명
output, 실행 계획이 기록 될 때 인쇄 할 예정입니다. 이 매개 변수는 기본적으로 꺼져 있습니다. 수퍼 유저만이 설정을 변경할 수 있습니다.
이 매개 변수가 켜져 있으면 실제로 로그인 할 수있을 정도로 오래 실행되는지 여부에 관계없이 실행 된 모든 문에 대해 플랜 노드 타이밍이 발생합니다. 이것은 성능에 매우 부정적인 영향을 줄 수 있습니다. 끄기스포츠 토토.log_timing
정보가 적은 가격으로 성능 비용을 개선합니다.
스포츠 토토.log_buffers
(부울
)스포츠 토토.log_buffers
실행 계획이 기록 될 때 버퍼 사용 통계가 인쇄되는지 여부를 제어합니다. 에 해당합니다.버퍼
옵션설명
. 이 매개 변수는 효과가 없습니다스포츠 토토.log_analyze
가 활성화되었습니다. 이 매개 변수는 기본적으로 꺼져 있습니다. 수퍼 유저만이 설정을 변경할 수 있습니다.
스포츠 토토.log_timing
(부울
)스포츠 토토.log_timing
실행 계획이 기록 될 때 노드 당 타이밍 정보가 인쇄되는지 여부를 제어합니다. 에 해당합니다.타이밍
옵션설명
. 시스템 시계를 반복적으로 읽는 오버 헤드는 일부 시스템에서 쿼리를 크게 느리게 할 수 있으므로 실제 행만 계산하지 않고 정확한 시간 만 필요할 때이 매개 변수를 OFF로 설정하는 것이 유용 할 수 있습니다. 이 매개 변수는 효과가 없습니다스포츠 토토.log_analyze
가 활성화되었습니다. 이 매개 변수는 기본적으로 켜져 있습니다. 수퍼 유저만이 설정을 변경할 수 있습니다.
스포츠 토토.log_triggers
(부울
)스포츠 토토.log_triggers
실행 계획이 기록 될 때 트리거 실행 통계가 포함되도록합니다. 이 매개 변수는 효과가 없습니다스포츠 토토.log_analyze
가 활성화되었습니다. 이 매개 변수는 기본적으로 꺼져 있습니다. 수퍼 유저만이 설정을 변경할 수 있습니다.
스포츠 토토.log_verbose
(부울
)스포츠 토토.log_verbose
실행 계획이 기록 될 때 동점 세부 사항이 인쇄되는지 여부를 제어합니다. 에 해당합니다.Verbose
옵션설명
. 이 매개 변수는 기본적으로 꺼져 있습니다. 수퍼 유저만이 설정을 변경할 수 있습니다.
스포츠 토토.log_format
(enum
)스포츠 토토.log_format
선택설명
사용할 출력 형식. 허용 값은입니다.텍스트
, XML
, JSON
및yaml
. 기본값은 텍스트입니다. 수퍼 유저만이 설정을 변경할 수 있습니다.
스포츠 토토.log_nested_statements
(부울
)스포츠 토토.log_nested_statements
로깅을 위해 중첩 된 명령문 (함수 내부에서 실행 된 진술)을 유발합니다. 꺼지면 최상위 쿼리 계획 만 기록됩니다. 이 매개 변수는 기본적으로 꺼져 있습니다. 수퍼 유저만이 설정을 변경할 수 있습니다.
스포츠 토토.sample_rate
(Real
)스포츠 토토.sample_rate
스포츠 토토이 각 세션에서 진술의 일부만 설명합니다. 기본값은 1이므로 모든 쿼리를 설명합니다. 중첩 된 진술의 경우, 모두 설명되거나 없을 것입니다. 수퍼 유저만이 설정을 변경할 수 있습니다.
일반 사용 에서이 매개 변수는에 설정됩니다.postgresql.conf
, 슈퍼 사용자는 자신의 세션 내에서 비행기를 변경할 수 있지만. 일반적인 사용법은 다음과 같습니다.
# postgresql.conf session_preload_libraries = '스포츠 토토' 스포츠 토토.log_min_duration = '3s'
postgres =# load '스포츠 토토'; postgres =# set 스포츠 토토.log_min_duration = 0; postgres =# set 스포츠 토토.log_analyze = true; postgres =# count (*) pg_class에서 pg_index에서 여기서 OID = Indrelid 및 Indisunique;
이것은 다음과 같은 로그 출력을 생성 할 수 있습니다.
로그 : 기간 : 3.651 MS 계획 : 쿼리 텍스트 : count (*) 선택 pg_class에서 pg_index에서 여기서 OID = Indrelid 및 Indisunique; 집계 (비용 = 16.79..16.80 행 = 1 너비 = 0) (실제 시간 = 3.626..3.627 행 = 1 루프 = 1) - 해시 조인 (비용 = 4.17..16.55 줄 = 92 너비 = 0) (실제 시간 = 3.349..3.594 줄 = 92 루프 = 1) 해시 콘크 : (pg_class.oid = pg_index.indrelid) - PG_CLASS의 SEQ 스캔 (비용 = 0.00..9.55 행 = 255 너비 = 4) (실제 시간 = 0.016..0.140 행 = 255 루프 = 1) - 해시 (비용 = 3.02..3.02 행 = 92 너비 = 4) (실제 시간 = 3.238..3.238 행 = 92 루프 = 1) 버킷 : 1024 배치 : 1 메모리 사용량 : 4KB - PG_INDEX의 SEQ 스캔 (비용 = 0.00..3.02 행 = 92 너비 = 4) (실제 시간 = 0.008..3.187 행 = 92 루프 = 1) 필터 : Instunique
Takahiro Itagaki<itagaki.takahiro@oss.ntt.co.jp