Warning: Undefined array key "" in /var/www/html/uzcms/ohdoggoods.com/incs/InnerPageRandTDK.php on line 4536 Deprecated: str_contains(): Passing null to parameter #2 ($needle) of type string is deprecated in /var/www/html/uzcms/ohdoggoods.com/incs/InnerPageRandTDK.php on line 2343 Postgresql: Tài tỷ lệ kèo bóng đá tối nay: 9.4: PG_STAT_STATENS
지원 버전 :현재(17) /16 / 15 / 14 / 13
개발 버전 :18 / Devel
지원되지 않는 버전 :12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4
이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
8183_8239현재버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

tỷ lệ kèo bóng đá tối nay F.29. pg_stat_statements

pg_stat_statements모듈은 서버에서 실행 한 모든 SQL 문의 실행 통계를 추적하는 수단을 제공합니다.

추가하여 모듈을로드해야합니다pg_stat_statementstoshared_preload_librariesinpostgresql.conf, 추가 공유 메모리가 필요하기 때문입니다. 이것은 모듈을 추가하거나 제거하기 위해 서버 재시작이 필요하다는 것을 의미합니다.

F.29.1. 그만큼pg_stat_statements보기

모듈에 의해 수집 된 통계는 이름이 지정된 시스템보기를 통해 제공됩니다pg_stat_statements. 이보기에는 각각의 별개의 데이터베이스 ID, 사용자 ID 및 쿼리 ID에 대해 하나의 행이 포함됩니다 (모듈이 추적 할 수있는 최대의 별개의 명령문 수까지). 보기의 열은에 표시됩니다.표 F-22.

표 F-22.pg_stat_statements

이름 type 참조 설명
userID OID pg_authid.Oid 진술을 실행 한 사용자의 OID
dbid OID PostgreSQL:.Oid 명세서가 실행 된 데이터베이스의 OID
QueryId bigint 내부 해시 코드, 진술의 구문 분석 트리에서 계산
쿼리 텍스트 대표 성명서의 텍스트
bigint 실행 된 횟수
Total_Time 이중 정밀 진술에 소요 된 총 시간, 밀리 초
bigint 성명서에 의해 검색되거나 영향을받는 총 행 수
shared_blks_hit bigint 성명서별 공유 블록 캐시의 총 수
shared_blks_read bigint 성명서에 의해 읽은 총 공유 블록 수
shared_blks_dirtied bigint 성명서에 의해 더러워진 총 공유 블록의 총 수
shared_blks_written bigint 진술에 의해 작성된 총 공유 블록 수
local_blks_hit bigint 성명서별 로컬 블록 캐시의 총 수치
local_blks_read bigint 성명서에 의해 읽은 총계 블록 수
local_blks_dirtied bigint 성명서에 의해 더러워진 총 지역 블록의 총 수
local_blks_written bigint 성명서에 의해 작성된 총계 블록 수
temp_blks_read bigint 진술서에 의해 읽는 총 임시 블록 수
temp_blks_written bigint 13824_13878
blk_read_time 이중 정밀 성명서가 블록을 읽는 데 소비 된 총 시간 (iftrack_io_timing활성화되어 있습니다. 그렇지 않으면 0)
blk_write_time 이중 정밀 성명서가 블록을 작성하는 데 소비 된 총 시간 (iftrack_io_timing활성화되어 있습니다. 그렇지 않으면 0)

이보기 및 기능pg_stat_statements_resetpg_stat_statements, 데이터베이스에서만 사용할 수 있습니다.pg_stat_statements확장. 그러나 통계는 될 때마다 서버의 모든 데이터베이스에서 추적됩니다.pg_stat_statements모듈은보기의 존재에 관계없이 서버에로드됩니다.

보안상의 이유로, 비 슈퍼 사용자는 SQL 텍스트를 볼 수 없습니다.QueryId다른 사용자가 실행 한 쿼리. 그러나 뷰가 데이터베이스에 설치된 경우 통계를 볼 수 있습니다.

Plannable Queries (즉,select, 삽입, 업데이트삭제)) 단일로 결합pg_stat_statements15510_15901

쿼리를 다른 쿼리와 일치시키기 위해 상수의 값이 무시되면 상수를 대체합니다?inpg_stat_statements16109_16199QueryIdpg_stat_statementsEntry.

경우에 따라 텍스트가 눈에 띄게 다른 쿼리가 단일로 병합 될 수 있습니다pg_stat_statements입력. 일반적으로 이것은 의미 적으로 동등한 쿼리에 대해서만 발생하지만 해시 충돌 가능성이 적 으면 관련없는 쿼리가 하나의 항목으로 병합됩니다. (그러나 다른 사용자 또는 데이터베이스에 속하는 쿼리에는 발생할 수 없습니다.)

이후QueryId해시 값은 쿼리의 패스트리 분석 표현에서 계산됩니다. 반대도 가능합니다. 동일한 텍스트가있는 쿼리는 별도의 항목으로 나타날 수 있습니다.search_path설정.

소비자pg_stat_statements사용하기를 원할 수 있습니다QueryId(아마도dbidanduserID) 쿼리 텍스트보다 각 항목에 대해보다 안정적이고 신뢰할 수있는 식별자로서. 그러나의 안정성에 대한 보장이 제한되어 있음을 이해하는 것이 중요합니다.QueryId해시 값. 식별자는 패스트리 분석 후 트리에서 파생되므로 그 값은 무엇 보다도이 표현에 나타나는 내부 객체 식별자의 함수입니다. 이것은 반 직관적 인 영향을 미칩니다. 예를 들어,pg_stat_statements17806_18126QueryId주요 버전에서에 안정됩니다PostgreSQL.

경험상QueryId값은 기본 서버 버전 및 카탈로그 메타 데이터 세부 정보가 정확히 동일하게 유지되는 한 안정적이고 비교할 수 있다고 가정 할 수 있습니다. 물리적 WAL 리플레이를 기반으로 복제에 참여하는 두 개의 서버가 동일 할 수 있습니다QueryId동일한 쿼리의 값. 그러나 논리적 복제 체계는 모든 관련 세부 사항에서 복제본을 동일하게 유지하겠다고 약속하지 않으므로QueryId일련의 논리적 복제품에 걸쳐 비용을 축적하는 데 유용한 식별자가 아닙니다. 의심스러운 경우 직접 테스트를 권장합니다.

대표 쿼리 텍스트는 외부 디스크 파일로 유지되며 공유 메모리를 소비하지 않습니다. 따라서 매우 긴 쿼리 텍스트조차도 성공적으로 저장할 수 있습니다. 그러나 많은 긴 쿼리 텍스트가 축적되면 외부 파일이 무의식적으로 커질 수 있습니다. 그런 경우 복구 방법으로pg_stat_statements19261_19341pg_stat_statements보기가 표시됩니다쿼리필드, 각각의 통계는 각각QueryId보존됩니다. 이런 일이 발생하면 감소를 고려하십시오pg_stat_statements.max재발을 방지하기 위해.

F.29.2. 기능

PG_STAT_STATEMENTS_RESET () 반환 void

pg_stat_statements_reset지금까지 수집 한 모든 통계 폐기PG_STAT_STATEMENTS. 기본적 으로이 기능은 슈퍼 사용자 만 실행할 수 있습니다.

PG_STAT_STATEMENTS (ShowText Boolean) 레코드를 반환

thepg_stat_statements보기가 지명 된 함수의 관점에서 정의됩니다pg_stat_statements. 고객이 전화를 걸 수 있습니다pg_stat_statements직접 기능하고 지정하여showtext : = false쿼리 텍스트를 생략하십시오 (즉,out보기에 해당하는 인수쿼리열이 널을 반환합니다). 이 기능은 불확실한 길이의 쿼리 텍스트를 반복적으로 검색하는 오버 헤드를 피할 수있는 외부 도구를 지원하기위한 것입니다. 이러한 도구는 대신 각 항목 자체에 대해 관찰 된 첫 번째 쿼리 텍스트를 캐시 할 수 있습니다.pg_stat_statements자체는 필요에 따라 쿼리 텍스트를 검색합니다. 서버는 파일에 쿼리 텍스트를 저장하기 때문에이 접근법은 물리적 I/O를 반복적으로 조사하기 위해를 줄일 수 있습니다.pg_stat_statements데이터.

F.29.3. 구성 매개 변수

pg_stat_statements.max(Integer)

pg_stat_statements.max는 모듈에서 추적하는 최대 명령문 수입니다 (즉,의 최대 행 수pg_stat_statements보기). 그보다 더 뚜렷한 진술이 관찰되면, 가장 잘 수행되지 않은 진술에 대한 정보는 폐기됩니다. 기본값은 5000입니다.이 매개 변수는 서버 시작시에만 설정할 수 있습니다.

pg_stat_statements.track(enum)

pg_stat_statements.track모듈에 의해 계산되는 진술을 제어합니다. 지정TOP최상위 진술을 추적하려면 (클라이언트가 직접 발행 한 것),all22226_22311없음명령문 통계 수집을 비활성화하려면. 기본값은입니다.TOP. 수퍼 유저만이 설정을 변경할 수 있습니다.

pg_stat_statements.track_utility(부울)

pg_stat_statements.track_utility22649_22755select, 삽입, 업데이트and삭제. 기본값은입니다.on. 수퍼 유저만이 설정을 변경할 수 있습니다.

pg_stat_statements.save(부울)

pg_stat_statements.save서버 종료에서 명령문 통계를 저장할지 여부를 지정합니다. 경우OFF그런 다음 통계는 종료시 저장되지 않거나 서버 시작시 다시로드되지 않습니다. 기본값은입니다.on. 이 매개 변수는에서만 설정할 수 있습니다.postgresql.conf파일 또는 서버 명령 줄에.

모듈은에 비례하여 추가 공유 메모리가 필요합니다.pg_stat_statements.max. 이 메모리는 모듈이로드 될 때마다 소비됩니다.pg_stat_statements.track로 설정되었습니다없음.

이 매개 변수를 설정해야합니다postgresql.conf. 일반적인 사용법은 다음과 같습니다.

# postgresql.conf
shared_preload_libraries = 'pg_stat_statements'

pg_stat_statements.max = 10000
pg_stat_statements.track = all

F.29.5. 저자

Takahiro Itagaki. Peter Geoghegan에 의해 추가 된 쿼리 정규화.