F.3. 토토 결과 - 느린 쿼리의 로그 실행 계획#

the토토 결과모듈은 실행할 필요없이 느린 문의 실행 계획을 자동으로 로깅 할 수있는 수단을 제공합니다설명손으로. 이것은 대규모 응용 프로그램에서 최적화되지 않은 쿼리를 추적하는 데 특히 도움이됩니다.

모듈은 SQL 액세스 가능 함수를 제공하지 않습니다. 사용하려면 서버에로드하십시오.

로드 '토토 결과';

(당신은 그렇게하려면 슈퍼업자가되어야합니다.) 더 일반적인 사용은를 포함하여 일부 또는 모든 세션에 사전로드하는 것입니다.토토 결과insession_preload_libraries또는shared_preload_librariesinpostgresql.conf. 그런 다음 언제 발생하든 예기치 않게 느린 쿼리를 추적 할 수 있습니다.

F.3.1. 구성 매개 변수#

동작을 제어하는 ​​몇 가지 구성 매개 변수가 있습니다.토토 결과. 기본 동작은 아무것도하지 않는 것이므로 최소한 설정해야합니다토토 결과.log_min_duration결과가 원하는 경우

토토 결과.log_min_duration (정수) #

토토 결과.log_min_duration는 최소 명령문 실행 시간 (밀리 초)로 명세서의 계획이 기록되게합니다. 이것을 설정0모든 계획을 기록합니다.-1(기본값)는 계획의 로깅을 비활성화합니다. 예를 들어,로 설정하면250ms그러면 250ms 이상 실행되는 모든 진술이 기록됩니다. 수퍼 유저만이 설정을 변경할 수 있습니다.

토토 결과.log_parameter_max_length (정수) #

토토 결과.log_parameter_max_length쿼리 매개 변수 값의 로깅을 제어합니다.-1(기본값) 매개 변수 값을 전체로 기록합니다.0매개 변수 값의 로깅을 비활성화합니다. 0보다 큰 값은 각 파라미터 값을 많은 바이트로 잘라냅니다.

토토 결과.log_analyze (부울) #

토토 결과.log_analyze원인분석 설명그냥보다는 출력설명output, 실행 계획이 기록 될 때 인쇄 할 예정입니다. 이 매개 변수는 기본적으로 꺼져 있습니다.

note

이 매개 변수가 켜져 있으면 실제로 로그인 할 수있을 정도로 오래 실행되는지 여부에 관계없이 실행 된 모든 문에 대해 플랜 노드 타이밍이 발생합니다. 이것은 성능에 매우 부정적인 영향을 줄 수 있습니다.토토 결과.log_timing정보가 적은 가격으로 성능 비용을 개선합니다.

토토 결과.log_buffers (부울) #

토토 결과.log_buffers실행 계획이 기록 될 때 버퍼 사용 통계가 인쇄되는지 여부를 제어합니다. 에 해당합니다.버퍼옵션설명. 이 매개 변수는 효과가 없습니다토토 결과.log_analyze가 활성화되었습니다. 이 매개 변수는 기본적으로 꺼져 있습니다.

토토 결과.log_wal (부울) #

토토 결과.log_wal실행 계획이 기록 될 때 WAL 사용 통계가 인쇄되는지 여부를 제어합니다. 에 해당합니다.Wal옵션설명. 이 매개 변수는 효과가 없습니다토토 결과.log_analyze가 활성화되었습니다. 이 매개 변수는 기본적으로 꺼져 있습니다.

토토 결과.log_timing (부울) #

토토 결과.log_timing실행 계획이 기록 될 때 노드 당 타이밍 정보가 인쇄되는지 여부를 제어합니다. 에 해당합니다.타이밍옵션설명. 시스템 시계를 반복적으로 읽는 오버 헤드는 일부 시스템에서 쿼리를 크게 느리게 할 수 있으므로 실제 행만 계산하지 않고 정확한 시간 만 필요할 때이 매개 변수를 OFF로 설정하는 것이 유용 할 수 있습니다.토토 결과.log_analyze가 활성화되었습니다. 이 매개 변수는 기본적으로 켜져 있습니다.

토토 결과.log_triggers (부울) #

토토 결과.log_triggers실행 계획이 기록 될 때 트리거 실행 통계가 포함되도록합니다. 이 매개 변수는 효과가 없습니다토토 결과.log_analyze가 활성화되었습니다. 이 매개 변수는 기본적으로 꺼져 있습니다.

토토 결과.log_verbose (부울) #

토토 결과.log_verbose실행 계획이 기록 될 때 동점 세부 사항이 인쇄되는지 여부를 제어합니다. 에 해당합니다.Verbose옵션설명. 이 매개 변수는 기본적으로 꺼져 있습니다.

토토 결과.log_settings (부울) #

토토 결과.log_settings실행 계획이 기록 될 때 수정 된 구성 옵션에 대한 정보가 인쇄되는지 여부를 제어합니다. 내장 기본값과 다른 값이있는 쿼리 계획에 영향을 미치는 옵션 만 출력에 포함됩니다.

토토 결과.log_format (enum) #

토토 결과.log_format선택설명사용할 출력 형식. 허용 값은입니다.텍스트, XML, JSONyaml. 기본값은 텍스트입니다.

토토 결과.log_level (enum) #

토토 결과.log_level토토 결과이 쿼리 계획을 기록하는 로그 레벨을 선택합니다. 유효한 값은Debug5, Debug4, Debug3, Debug2, Debug1, Info, 통지, 경고log. 기본값은log. 수퍼 유저만이 설정을 변경할 수 있습니다.

토토 결과.log_nested_statements (부울) #

토토 결과.log_nested_statements로깅을 위해 중첩 된 명령문 (함수 내부에서 실행 된 명령문)을 유발합니다. 꺼지면 최상위 쿼리 계획 만 기록됩니다.

토토 결과.sample_rate (Real) #

토토 결과.sample_rate토토 결과이 각 세션에서 진술의 일부만 설명합니다. 기본값은 1이므로 모든 쿼리를 설명합니다.

일반적인 사용 에서이 매개 변수는에 설정됩니다.postgresql.conf, 슈퍼 사용자는 자신의 세션 내에서 비행기를 변경할 수 있지만. 일반적인 사용법은 다음과 같습니다.

# postgresql.conf

F.3.2. 예#

postgres =# load '토토 결과';

이것은 다음과 같은 로그 출력을 생성 할 수 있습니다.

로그 : 기간 : 3.651 MS 계획 :

F.3.3. 작가#

Takahiro Itagaki

수정 제출

올바른 문서에 아무것도 표시되면 일치하지 않습니다.이 양식문서 문제를보고하려면