| PostgreSQL 9.3.25 문서 | ||||
|---|---|---|---|---|
| 메이저 토토 사이트 : 문서 : 9.3 : 잠금보기 | 롤 토토 : 문서 : 9.3 : 데이터베이스 활동 모니터링 | 27장. 데이터베이스 활동 모니터링 | PostgreSQL : 문서 : 9.3 : 디스크 사용 토토 커뮤니티 | |
포스트그레SQL시설 제공 데이터베이스 서버의 동적 추적을 지원합니다. 이를 통해 코드의 특정 지점에서 호출되는 외부 유틸리티 따라서 실행을 추적합니다.
여러 개의 프로브 또는 추적 지점이 이미 소스 코드. 이 프로브는 데이터베이스에서 사용하도록 고안되었습니다. 개발자와 관리자. 기본적으로 프로브는 그렇지 않습니다. 로 컴파일됨포스트그레SQL; 사용자 토토 사이트 추천를 만들려면 구성 스크립트에 명시적으로 지시해야 합니다. 가능합니다.
현재,DTrace유틸리티가 지원됩니다. 당시에는 이 글의 내용은 Solaris, Mac OS X, FreeBSD, NetBSD 및 Oracle Linux. 그만큼SystemTapLinux용 프로젝트는 DTrace와 동등한 기능을 제공하며 사용. 다른 동적 추적 유틸리티를 지원하는 것은 이론적으로 매크로에 대한 정의를 변경하면 가능합니다.src/include/utils/probes.h.
기본적으로 프로브를 사용할 수 없으므로 다음을 수행해야 합니다. 프로브를 사용할 수 있도록 구성 스크립트에 명시적으로 지시합니다. 에서포스트그레SQL. DTrace를 포함하려면 지원 지정--활성화-dtrace에 구성합니다. 참조PostgreSQL : 문서 : 9.3 : 윈 토토 절차자세한 내용은.
소스 코드에는 다음과 같은 여러 가지 표준 프로브가 제공됩니다. 에 표시됨표 27-15; 표 27-16쇼 토토 사이트 추천에 사용되는 유형. 더 많은 토토 사이트 추천가 확실히 추가될 수 있습니다. 강화하다포스트그레SQL의 관찰 가능성.
표 27-15. 내장 DTrace 프로브
| 이름 | 매개변수 | 설명 |
|---|---|---|
| 거래 시작 | (LocalTransactionId) | 새 트랜잭션 시작 시 실행되는 토토 사이트 추천. arg0은 거래 ID. |
| 트랜잭션-커밋 | (LocalTransactionId) | 트랜잭션이 성공적으로 완료되면 실행되는 토토 사이트 추천입니다. arg0은 트랜잭션 ID입니다. |
| 트랜잭션 중단 | (LocalTransactionId) | 트랜잭션이 성공적으로 완료되지 않을 때 실행되는 토토 사이트 추천입니다. arg0은 트랜잭션 ID입니다. |
| 쿼리-시작 | (const char *) | 쿼리 처리가 시작될 때 실행되는 토토 사이트 추천. arg0은 쿼리 문자열입니다. |
| 쿼리 완료 | (const char *) | 쿼리 처리가 완료되면 실행되는 토토 사이트 추천. arg0은 쿼리 문자열입니다. |
| 쿼리-분석-시작 | (const char *) | 쿼리 구문 분석이 시작될 때 실행되는 토토 사이트 추천. 인수0 쿼리 문자열입니다. |
| 쿼리-분석 완료 | (const char *) | 쿼리 구문 분석이 완료되면 실행되는 토토 사이트 추천. 인수0 쿼리 문자열입니다. |
| 쿼리-재작성-시작 | (const char *) | 쿼리 재작성이 시작될 때 실행되는 토토 사이트 추천. 인수0 쿼리 문자열입니다. |
| 쿼리-재작성-완료 | (const char *) | 쿼리 재작성이 완료되면 실행되는 토토 사이트 추천. arg0은 쿼리 문자열입니다. |
| 쿼리-계획-시작 | () | 쿼리 계획이 시작될 때 실행되는 토토 사이트 추천. |
| 쿼리-계획-완료 | () | 쿼리 계획이 완료되면 실행되는 토토 사이트 추천. |
| 쿼리-실행-시작 | () | 쿼리 실행이 시작될 때 실행되는 토토 사이트 추천. |
| 쿼리-실행-완료 | () | 쿼리 실행 시 실행되는 토토 사이트 추천 완료되었습니다. |
| 진술-상태 | (const char *) | 서버 프로세스가 업데이트할 때마다 실행되는 토토 사이트 추천pg_stat_activity.상태. arg0은 새 상태 문자열입니다. |
| 체크포인트-시작 | (int) | 체크포인트가 시작될 때 실행되는 토토 사이트 추천. arg0은 다양한 체크포인트 유형을 구별하는 데 사용되는 비트 단위 플래그 종료, 즉시 또는 강제로 표시됩니다. |
| 체크포인트 완료 | (정수, 정수, 정수, 정수, 정수) | 체크포인트가 완료되면 실행되는 프로브. (프로브 체크포인트 처리 중에 다음 화재를 순차적으로 나열합니다.) arg0은 쓰여진 버퍼의 수. arg1은 총 버퍼 수입니다. arg2, arg3 및 arg4에는 추가된 xlog 파일 수가 포함됩니다. 각각 제거되고 재활용되었습니다. |
| clog-checkpoint-start | (부울) | 체크포인트의 CLOG 부분이 다음과 같을 때 실행되는 프로브 시작되었습니다. arg0은 일반 체크포인트의 경우 true이고 종료의 경우 false입니다. 체크포인트. |
| clog-checkpoint-done | (부울) | 체크포인트의 CLOG 부분이 다음과 같을 때 실행되는 프로브 완료. arg0은 for와 같은 의미를 갖습니다. 막힘-체크포인트-시작. |
| subtrans-checkpoint-start | (부울) | 체크포인트의 SUBTRANS 부분이 다음과 같을 때 실행되는 프로브 시작되었습니다. arg0은 일반 체크포인트의 경우 true이고 종료의 경우 false입니다. 체크포인트. |
| subtrans-checkpoint-done | (부울) | 체크포인트의 SUBTRANS 부분이 다음과 같을 때 실행되는 프로브 완료. arg0은 for와 같은 의미를 갖습니다. 서브트랜스-체크포인트-시작. |
| multixact-checkpoint-start | (부울) | 체크포인트의 MultiXact 부분이 다음과 같을 때 실행되는 프로브 시작되었습니다. arg0은 일반 체크포인트의 경우 true이고 종료의 경우 false입니다. 체크포인트. |
| multixact-checkpoint-done | (부울) | 체크포인트의 MultiXact 부분이 다음과 같을 때 실행되는 프로브 완료. arg0은 for와 같은 의미를 갖습니다. multixact-체크포인트-시작. |
| 버퍼-체크포인트-시작 | (int) | 버퍼 쓰기 부분이 체크포인트가 시작되었습니다. arg0은 다음 작업에 사용되는 비트 단위 플래그를 보유합니다. 종료, 즉시 등 다양한 체크포인트 유형을 구분합니다. 아니면 강제로. |
| 버퍼-동기화-시작 | (정수, 정수) | 작업 중에 더티 버퍼를 쓰기 시작할 때 실행되는 프로브 체크포인트(어떤 버퍼를 작성해야 하는지 식별한 후) 인수0 총 버퍼 수입니다. arg1은 다음과 같은 숫자입니다. 현재 더러워서 작성해야 합니다. |
| 버퍼-동기화-작성 | (int) | 각 버퍼가 기록된 후 실행되는 토토 사이트 추천 검문소. arg0은 버퍼의 ID 번호입니다. |
| 버퍼-동기화 완료 | (정수, 정수, 정수) | 더티 버퍼가 모두 기록되면 실행되는 토토 사이트 추천입니다. 인수0 총 버퍼 수입니다. arg1은 버퍼 수입니다. 실제로 체크포인트 프로세스에 의해 작성되었습니다. arg2는 해당 숫자입니다. 기록될 것으로 예상되었습니다(buffer-sync-start의 arg1). 어떤 차이는 버퍼를 플러시하는 다른 프로세스를 반영합니다. 체크포인트. |
| 버퍼-체크포인트-동기화-시작 | () | 더티 버퍼가 기록된 후 실행되는 토토 사이트 추천 커널, fsync 요청 발행을 시작하기 전. |
| 버퍼-체크포인트-완료 | () | 버퍼를 디스크에 동기화할 때 실행되는 토토 사이트 추천는 완료되었습니다. |
| 2단계-체크포인트-시작 | () | 체크포인트의 2단계 부분이 다음과 같을 때 실행되는 프로브 시작했습니다. |
| 2단계-체크포인트-완료 | () | 체크포인트의 2단계 부분이 다음과 같을 때 실행되는 프로브 완료되었습니다. |
| 버퍼-읽기-시작 | (ForkNumber, BlockNumber, Oid, Oid, Oid, int, bool) | 버퍼 읽기가 시작될 때 실행되는 토토 사이트 추천입니다. arg0 및 arg1 페이지의 포크 및 블록 번호를 포함합니다(그러나 arg1은 -1입니다). 관계 확장 요청인 경우). arg2, arg3 및 arg4 테이블스페이스, 데이터베이스, 관계 OID를 포함합니다. 관계. arg5는 임시를 생성한 백엔드의 ID입니다. 로컬 버퍼의 경우 관계 또는 공유의 경우 InvalidBackendId(-1) 버퍼. arg6은 관계 확장 요청의 경우 true이고, arg6은 false입니다. 정상 읽기. |
| 버퍼 읽기 완료 | (ForkNumber, BlockNumber, Oid, Oid, Oid, int, bool, bool) | 버퍼 읽기가 완료되면 실행되는 프로브입니다. arg0 및 arg1 페이지의 포크와 블록 번호를 포함합니다(이것이 관계 확장 요청, arg1에는 이제 다음의 블록 번호가 포함됩니다. 새로 추가된 블록). arg2, arg3 및 arg4에는 관계를 식별하는 테이블스페이스, 데이터베이스 및 관계 OID입니다. arg5는 임시 관계를 생성한 백엔드의 ID입니다. 로컬 버퍼의 경우, 공유 버퍼의 경우 InvalidBackendId(-1)입니다. arg6은 관계 확장 요청의 경우 true이고, 일반 요청의 경우 false입니다. 읽다. arg7은 버퍼가 풀에서 발견되면 true이고, 그렇지 않으면 false입니다. 아닙니다. |
| 버퍼 플러시 시작 | (ForkNumber, BlockNumber, Oid, Oid, Oid) | 공유에 대한 쓰기 요청을 발행하기 전에 실행되는 토토 사이트 추천 버퍼. arg0과 arg1에는 포크와 블록 번호가 포함되어 있습니다. 페이지. arg2, arg3 및 arg4에는 테이블스페이스, 데이터베이스 및 관계를 식별하는 관계 OID입니다. |
| 버퍼 플러시 완료 | (ForkNumber, BlockNumber, Oid, Oid, Oid) | 쓰기 요청이 완료되면 실행되는 프로브. (참고하세요 이는 단지 데이터를 커널에 전달하는 시간을 반영할 뿐입니다. 그것은 일반적으로 실제로 아직 디스크에 기록되지 않았습니다.) 인수는 다음과 같습니다. 버퍼 플러시 시작과 동일합니다. |
| 버퍼-쓰기-더티-시작 | (ForkNumber, BlockNumber, Oid, Oid, Oid) | 서버 프로세스가 더티 쓰기를 시작할 때 실행되는 프로브 버퍼. (이런 일이 자주 발생하면 다음을 의미합니다.shared_buffers너무 작거나 bgwriter 제어 매개변수를 조정해야 합니다.) arg0 및 arg1에는 페이지의 포크 및 블록 번호가 포함됩니다. 인수2, arg3 및 arg4에는 테이블스페이스, 데이터베이스 및 관계 OID가 포함됩니다. 관계를 식별합니다. |
| 버퍼-쓰기-더티-완료 | (ForkNumber, BlockNumber, Oid, Oid, Oid) | 더티 버퍼 쓰기가 완료되면 실행되는 토토 사이트 추천입니다. 는 인수는 buffer-write-dirty-start와 동일합니다. |
| 월-버퍼-쓰기-더티-시작 | () | 서버 프로세스가 더티 쓰기를 시작할 때 실행되는 프로브 더 이상 WAL 버퍼 공간을 사용할 수 없기 때문에 WAL 버퍼입니다. (이런 경우 자주 발생한다는 것은 다음을 의미합니다.wal_buffers너무 작습니다.) |
| 월-버퍼-쓰기-더티-완료 | () | 더티 WAL 버퍼 쓰기가 다음과 같을 때 실행되는 프로브 완료되었습니다. |
| xlog-삽입 | (부호 없는 문자, 부호 없는 문자) | WAL 레코드가 삽입될 때 실행되는 프로브. arg0은 레코드에 대한 리소스 관리자(rmid)입니다. arg1에는 정보가 포함되어 있습니다. 플래그. |
| xlog-스위치 | () | WAL 세그먼트 전환이 요청될 때 실행되는 토토 사이트 추천. |
| smgr-md-read-start | (ForkNumber, BlockNumber, Oid, Oid, Oid, int) | 블록에서 블록을 읽기 시작할 때 실행되는 토토 사이트 추천 관계. arg0과 arg1에는 포크와 블록 번호가 포함되어 있습니다. 페이지. arg2, arg3 및 arg4에는 테이블스페이스, 데이터베이스 및 관계를 식별하는 관계 OID입니다. arg5는 로컬 버퍼에 대한 임시 관계를 생성한 백엔드, 또는 공유 버퍼의 경우 InvalidBackendId(-1)입니다. |
| smgr-md-읽기-완료 | (ForkNumber, BlockNumber, Oid, Oid, Oid, int, int, int) | 블록 읽기가 완료되면 실행되는 토토 사이트 추천. arg0 및 arg1 페이지의 포크 및 블록 번호를 포함합니다. arg2, arg3 및 arg4에는 테이블스페이스, 데이터베이스 및 관계 OID가 포함됩니다. 관계를 식별합니다. arg5는 백엔드의 ID입니다. 로컬 버퍼에 대한 임시 관계를 생성했거나 공유 버퍼의 경우 InvalidBackendId(-1)입니다. arg6은 실제로 읽은 바이트 수이고 arg7은 요청된 숫자입니다(이 경우 다르면 문제가 있음을 나타냅니다.) |
| smgr-md-write-start | (ForkNumber, BlockNumber, Oid, Oid, Oid, int) | 관계에 블록을 쓰기 시작할 때 실행되는 토토 사이트 추천. arg0 및 arg1에는 페이지의 포크 및 블록 번호가 포함됩니다. 인수2, arg3 및 arg4에는 테이블스페이스, 데이터베이스 및 관계 OID가 포함됩니다. 관계를 식별합니다. arg5는 백엔드의 ID입니다. 로컬 버퍼에 대한 임시 관계를 생성했거나 공유 버퍼의 경우 InvalidBackendId(-1)입니다. |
| smgr-md-write-done | (ForkNumber, BlockNumber, Oid, Oid, Oid, int, int, int) | 블록 쓰기가 완료되면 실행되는 토토 사이트 추천. arg0 및 arg1 페이지의 포크 및 블록 번호를 포함합니다. arg2, arg3 및 arg4에는 테이블스페이스, 데이터베이스 및 관계 OID가 포함됩니다. 관계를 식별합니다. arg5는 백엔드의 ID입니다. 로컬 버퍼에 대한 임시 관계를 생성했거나 공유 버퍼의 경우 InvalidBackendId(-1)입니다. arg6은 실제로 쓰여진 바이트 수이고 arg7은 요청된 숫자입니다. 서로 다르기 때문에 문제가 있음을 나타냅니다.) |
| 정렬-시작 | (int, bool, int, int, bool) | 정렬 작업이 시작될 때 실행되는 토토 사이트 추천. 인수0 힙, 인덱스 또는 데이텀 정렬을 나타냅니다. arg1은 고유 값에 대해 true입니다. 집행. arg2는 키 열의 수입니다. arg3은 숫자입니다 킬로바이트 단위의 작업 메모리가 허용됩니다. arg4는 랜덤 액세스인 경우 true입니다. 정렬 결과가 필요합니다. |
| 정렬 완료 | (부울, 긴) | 정렬이 완료되면 실행되는 토토 사이트 추천. arg0은 true입니다. 외부 정렬, 내부 정렬의 경우 거짓입니다. arg1은 디스크 수입니다. 외부 정렬에 사용되는 블록 또는 정렬에 사용되는 메모리(KB) 내부 정렬입니다. |
| lwlock-획득 | (LWLockId, LWLockMode) | LWLock이 획득되면 실행되는 토토 사이트 추천. arg0은 LWLock의 아이디입니다. arg1은 요청된 잠금 모드이며 배타적이거나 공유됨. |
| lwlock-release | (LWLockId) | LWLock이 해제되었을 때 실행되는 토토 사이트 추천(그러나 참고 석방된 웨이터는 아직 깨어나지 않았습니다.) arg0은 LWLock의 ID입니다. |
| lwlock-대기-시작 | (LWLockId, LWLockMode) | LWLock을 즉시 사용할 수 없을 때 실행되는 토토 사이트 추천 서버 프로세스가 잠금이 설정될 때까지 기다리기 시작했습니다. 가능합니다. arg0은 LWLock의 ID입니다. arg1은 요청된 잠금입니다. 모드(독점 또는 공유). |
| lwlock-wait-done | (LWLockId, LWLockMode) | 서버 프로세스가 해제되었을 때 실행되는 토토 사이트 추천 LWLock을 기다립니다(실제로는 아직 잠금이 없습니다). arg0은 LWLock의 ID입니다. arg1은 요청된 잠금 모드입니다. 독점 또는 공유. |
| lwlock-condacquire | (LWLockId, LWLockMode) | LWLock이 성공적으로 획득되었을 때 실행되는 토토 사이트 추천 발신자가 기다리지 말라고 지정했습니다. arg0은 LWLock의 ID입니다. arg1은 요청된 잠금 모드(독점 또는 공유). |
| lwlock-condacquire-fail | (LWLockId, LWLockMode) | LWLock이 성공적으로 획득되지 않았을 때 실행되는 토토 사이트 추천 발신자가 대기 없음을 지정한 경우. arg0은 LWLock의 ID입니다. 인수1 요청된 잠금 모드는 독점 또는 공유입니다. |
| 잠금-대기-시작 | (부호 없는 정수, 부호 없는 정수, 부호 없는 정수, 부호 없는 정수, 서명되지 않은 정수, LOCKMODE) | 무거운 잠금을 요청할 때 실행되는 토토 사이트 추천(lmgr lock)이 잠금을 사용할 수 없기 때문에 대기를 시작했습니다. 인수0 arg3부터 개체를 식별하는 태그 필드입니다. 잠겼습니다. arg4는 잠긴 객체의 유형을 나타냅니다. 인수5 요청된 잠금 유형을 나타냅니다. |
| 잠금-대기-완료 | (부호 없는 정수, 부호 없는 정수, 부호 없는 정수, 부호 없는 정수, 서명되지 않은 정수, LOCKMODE) | 무거운 잠금을 요청할 때 실행되는 토토 사이트 추천(lmgr 잠금) 대기가 완료되었습니다(즉, 잠금을 획득했습니다). 는 인수는 lock-wait-start와 동일합니다. |
| 교착상태 발견 | () | 교착 상태에 의해 교착 상태가 발견되면 실행되는 프로브 감지기. |
아래 예는 분석을 위한 DTrace 스크립트를 보여줍니다. 스냅샷의 대안으로 시스템의 트랜잭션 수pg_stat_databasea 전후 성능 테스트:
#!/usr/sbin/dtrace -qs
postgresql$1:::트랜잭션-시작
@start["시작"] = 개수();
자체-ts = 타임스탬프;
postgresql$1:::트랜잭션-중단
@abort["중단"] = count();
postgresql$1:::트랜잭션-커밋
/자신-ts/
@commit["커밋"] = count();
@time["총 시간(ns)"] = sum(timestamp - self-ts);
자체-ts=0;
실행되면 예제 D 스크립트는 다음과 같은 출력을 제공합니다.
# ./txn_count.d `pgrep -n postgres` 또는 ./txn_count.d <PID ^C 시작 71 커밋 70 총 시간(ns) 2312105013
참고:SystemTap은 추적을 위해 다른 표기법을 사용합니다 기본 추적 지점이 있더라도 DTrace보다 스크립트 호환됩니다. 주목할 만한 한 가지 점은 이 글을 쓰는 시점에서, SystemTap 스크립트는 이중 문자를 사용하여 프로브 이름을 참조해야 합니다. 하이픈 대신 밑줄을 그립니다. 이 문제는 에서 수정될 것으로 예상됩니다. 향후 SystemTap 릴리스.
DTrace 스크립트는 주의 깊게 작성해야 한다는 점을 기억해야 합니다. 작성 및 디버깅되며, 그렇지 않으면 추적 정보가 수집됩니다. 의미가 없을 수도 있습니다. 문제가 발견된 대부분의 경우 기본 시스템이 아니라 결함이 있는 계측입니다. 동적 추적을 사용하여 찾은 정보를 논의할 때 다음 사항을 확인하십시오. 이를 확인하는 데 사용되는 스크립트를 동봉하고 논의했습니다.
더 많은 예제 스크립트는 PgFoundry에서 찾을 수 있습니다.dtrace 프로젝트.
개발자가 어디에 있든 코드 내에서 새로운 프로브를 정의할 수 있습니다. 하지만 이를 위해서는 재컴파일이 필요합니다. 아래는 새 프로브를 삽입하는 단계:
다음을 통해 사용할 수 있는 프로브 이름과 데이터를 결정하십시오. 프로브
다음에 프로브 정의 추가src/backend/utils/probes.d
포함pg_trace.h그렇지 않다면 프로브 포인트를 포함하는 모듈에 이미 존재하며, 삽입TRACE_POSTGRESQL토토 사이트 추천 매크로 소스 코드에서 원하는 위치
새 토토 사이트 추천를 사용할 수 있는지 다시 컴파일하고 확인
예:다음은 프로브를 추가하는 방법의 예입니다. 거래 ID로 모든 새로운 거래를 추적합니다.
탐색 이름을 정할지 결정거래 시작다음 유형의 매개변수가 필요합니다. LocalTransactionId
다음에 프로브 정의 추가src/backend/utils/probes.d:
프로브 transaction__start(LocalTransactionId);
탐색 이름에 이중 밑줄 사용에 유의하세요. 에서 프로브를 사용하는 DTrace 스크립트에서는 이중 밑줄이 필요합니다. 하이픈으로 대체되었으므로거래 시작문서화할 이름입니다 사용자.
컴파일 시,transaction__start이다 라는 매크로로 변환되었습니다.TRACE_POSTGRESQL_TRANSACTION_START(주의하세요 여기서 밑줄은 단일입니다), 이는 다음을 포함하여 사용할 수 있습니다.pg_trace.h. 매크로 호출을 소스 코드의 적절한 위치. 이 경우에는 다음과 같습니다. 다음과 같습니다:
TRACE_POSTGRESQL_TRANSACTION_START(vxid.localTransactionId);
새 바이너리를 다시 컴파일하고 실행한 후 다음을 확인하세요. 새로 추가된 프로브는 다음 DTrace를 실행하여 사용할 수 있습니다. 명령. 비슷한 출력이 표시됩니다.
# dtrace -ln 트랜잭션 시작 ID 제공자 모듈 기능 이름 18705 postgresql49878 postgres StartTransactionCommand 트랜잭션 시작 18755 postgresql49877 postgres StartTransactionCommand 트랜잭션 시작 18805 postgresql49876 postgres StartTransactionCommand 트랜잭션 시작 18855 postgresql49875 postgres StartTransactionCommand 트랜잭션 시작 18986 postgresql49873 postgres StartTransactionCommand 트랜잭션 시작
추적을 추가할 때 주의해야 할 몇 가지 사항이 있습니다. C 코드에 대한 매크로:
당신은 프로브에 대해 지정된 데이터 유형에 주의해야 합니다 매개변수는 매크로에 사용된 변수의 데이터 유형과 일치합니다. 그렇지 않으면 컴파일 오류가 발생합니다.
대부분의 플랫폼에서 다음과 같은 경우PostgreSQL다음으로 구축됨--활성화-dtrace, 추적 매크로에 대한 인수는 제어가 매크로를 통과할 때마다 평가됩니다.추적이 되지 않더라도 완료. 다음과 같은 경우에는 일반적으로 걱정할 가치가 없습니다. 단지 몇 가지 지역 변수의 값을 보고할 뿐입니다. 하지만 조심하세요 값비싼 함수 호출을 인수에 넣는 것입니다. 필요한 경우 그렇게 하려면 확인을 통해 매크로를 보호하는 것이 좋습니다. 추적이 실제로 활성화되었습니다.
if (TRACE_POSTGRESQL_TRANSACTION_START_ENABLED())
TRACE_POSTGRESQL_TRANSACTION_START(some_function(...));
각 추적 매크로에는 해당하는활성화됨매크로.
| 이전 | 배트맨 토토 : 문서 : 9.3 : 배트맨 토토 9.3.25 문서화 | PostgreSQL : 문서 : 9.3 : 디스크 사용 토토 커뮤니티 |
| 잠금 보기 | 위로 | 디스크 모니터링 사용법 |