윈 토토 : 문서 : 9.4 : 윈 토토 9.4 | |||
---|---|---|---|
사설 토토 : 문서 : 9.4 : Auth_delay | PostgreSQL : 문서 : 9.4 : 추가 제공 배트맨 토토 | 부록 F. 추가 공급 모듈 | 토토 핫 : 문서 : 9.4 : btree_gin |
the토토 베이모듈은 실행할 필요없이 느린 문의 실행 계획을 자동으로 로깅 할 수있는 수단을 제공합니다토토 사이트 순위 : 문서 : 9.4 : 설명손으로. 이것은 대규모 응용 프로그램에서 최적화되지 않은 쿼리를 추적하는 데 특히 도움이됩니다.
모듈은 SQL 액세스 가능 함수를 제공하지 않습니다. 사용하려면 서버에로드하십시오. 당신은 그것을 개별 세션에로드 할 수 있습니다 :
로드 '토토 베이';
(당신은 그렇게하려면 슈퍼업자가되어야합니다.) 더 일반적인 사용법은를 포함하여 일부 또는 모든 세션에 사전로드하는 것입니다.토토 베이insession_preload_libraries또는shared_preload_librariesinpostgresql.conf. 그런 다음 언제 발생하든 예기치 않게 느린 쿼리를 추적 할 수 있습니다. 물론 그에 대한 오버 헤드 가격이 있습니다.
동작을 제어하는 몇 가지 구성 매개 변수가 있습니다.토토 베이. 기본 동작은 아무것도하지 않는 것이므로 최소한 설정해야합니다토토 베이.log_min_duration결과가 원하는 경우
토토 베이.log_min_duration최소 명령문 실행 시간은 밀리 초의 최소 진술 시간입니다. 이것을 제로 로그로 설정하면 모든 계획이 있습니다. 마이너스 (기본값)는 계획의 로깅을 비활성화합니다. 예를 들어,로 설정하면250ms그러면 250ms 이상 실행되는 모든 진술이 기록됩니다. 수퍼 유저만이 설정을 변경할 수 있습니다.
토토 베이.log_analyze원인분석 설명단지 출력설명출력, 실행 계획이 기록 될 때 인쇄 할 예정입니다. 이 매개 변수는 기본적으로 꺼져 있습니다. 수퍼 유저만이 설정을 변경할 수 있습니다.
참고 :이 매개 변수가 켜져 있으면 실제로 로그인 할 수있을 정도로 오래 실행되는지 여부에 관계없이 실행 된 모든 문에 대해 플랜 노드 타이밍이 발생합니다. 이것은 성능에 매우 부정적인 영향을 줄 수 있습니다. 끄기토토 베이.log_timing정보가 적은 가격으로 성능 비용을 개선합니다.
토토 베이.log_buffers실행 계획이 기록 될 때 버퍼 사용 통계가 인쇄되는지 여부를 제어합니다. 에 해당합니다.버퍼옵션설명. 이 매개 변수는 효과가 없습니다토토 베이.log_analyze가 활성화되었습니다. 이 매개 변수는 기본적으로 꺼져 있습니다. 수퍼 유저만이 설정을 변경할 수 있습니다.
토토 베이.log_timing실행 계획이 기록 될 때 노드 당 타이밍 정보가 인쇄되는지 여부를 제어합니다. 에 해당합니다.타이밍옵션설명. 시스템 시계를 반복적으로 읽는 오버 헤드는 일부 시스템에서 쿼리를 크게 느리게 할 수 있으므로 실제 행이 필요할 때이 매개 변수를 꺼내는 것이 유용 할 수 있습니다. 이 매개 변수는 효과가 없습니다토토 베이.log_analyze가 활성화되었습니다. 이 매개 변수는 기본적으로 켜져 있습니다. 수퍼 유저만이 설정을 변경할 수 있습니다.
토토 베이.log_triggers실행 계획이 기록 될 때 트리거 실행 통계가 포함되도록합니다. 이 매개 변수는 효과가 없습니다토토 베이.log_analyze가 활성화되었습니다. 이 매개 변수는 기본적으로 꺼져 있습니다. 수퍼 유저만이 설정을 변경할 수 있습니다.
토토 베이.log_verbose실행 계획이 기록 될 때 동점 세부 사항이 인쇄되는지 여부를 제어합니다. 에 해당합니다.Verbose옵션설명. 이 매개 변수는 기본적으로 꺼져 있습니다. 수퍼 유저만이 설정을 변경할 수 있습니다.
토토 베이.log_format선택설명사용할 출력 형식. 허용 값은입니다.텍스트, XML, JSON및yaml. 기본값은 텍스트입니다. 수퍼 유저만이 설정을 변경할 수 있습니다.
토토 베이.log_nested_statements로깅을 위해 중첩 된 명령문 (함수 내부에서 실행 된 명령문)을 유발합니다. 꺼지면 최상위 쿼리 계획 만 기록됩니다. 이 매개 변수는 기본적으로 꺼져 있습니다. 수퍼 유저만이 설정을 변경할 수 있습니다.
일반 사용 에서이 매개 변수는에 설정됩니다.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